Vero ma anche vero che se come hai scritto se le esegui più volte i
tempi scendono di molto, vuol dire che il db lavora con dati in cache e
la prima volta è l'accesso sequenziale che rallenta di molto, per cui
sarebbe stata buona regola mettere gli indici anche sulla 9.3, tieni
anche conto che sulla dieci il query parallel e l'accesso al dato in
maniera parallela, cambia di molto il piano di query rispetto alla 9.3,
anyway
" -> Merge Left Join (cost=218662.39..228652.04 rows=110 width=428)
(actual time=137559.881..4562326.800 rows=58 loops=1)"
" Merge Cond: (cli.id = age.soggetto)"
" -> Nested Loop Left Join
(cost=210701.31..220644.67 rows=110 width=420) (actual
time=137555.476..4562320.085 rows=58 loops=1)"
" Join Filter: ((min(mot.id)) =
mor.modulo_ordine)"
" Rows Removed by Join Filter: 198662"
" -> Nested Loop Left Join
(cost=196095.49..202452.97 rows=1 width=349) (actual
time=137378.351..4557616.865 rows=30 loops=1)"
" Join Filter: (mott_1.cliente =
cli.id)"
" Rows Removed by Join Filter: 161201"
" -> Nested Loop Left Join
(cost=192935.34..198934.87 rows=1 width=317) (actual
time=137339.212..4557488.278 rows=30 loops=1)"
" Join Filter: (mott.cliente
= cli.id)"
" Rows Removed by Join
Filter: 249177"
" -> Merge Left Join
(cost=189783.67..195472.43 rows=1 width=285) (actual
time=137298.415..4557310.522 rows=30 loops=1)"
" Merge Cond: (cli.id =
kbtc4.cliente)"
" -> Nested Loop Left
Join (cost=169488.66..175177.32 rows=1 width=253) (actual
time=137220.694..4557232.655 rows=30 loops=1)"
" Join Filter:
(kbtc3.cliente = cli.id)"
" Rows Removed by
Join Filter: 285589"
" -> Nested Loop Left Join (cost=115582.24..120682.71 rows=1
width=245) (actual time=136872.390..4556747.696 rows=30 loops=1)"
" Join Filter: (kbtc2.cliente = cli.id)"
" Rows Removed by Join Filter: 287600"
" -> Nested Loop (cost=61614.65..66126.93 rows=1 width=237) (actual
time=136515.267..4556249.912 rows=30 loops=1)"
" Join Filter: (cli.id = mot.cliente)"
" Rows Removed by Join Filter: 251640"
" -> GroupAggregate (cost=7155.53..7155.57 rows=1 width=43) (actual
time=54.720..54.992 rows=30 loops=1)"
Se guardi i tempi sembra che il problema sia sul join, io per conto mio
proverei a vedere se hanno indici
(cli.id = mot.cliente), (kbtc2.cliente = cli.id), etc... ;)
Per avere un idea del tuo explain dai un occhio a
https://explain.depesz.com/s/dSuS oppure inserisci il tuo explain su:
https://explain.depesz.com
Enrico
Il 26/09/2018 18:37, Nicola Nardi ha scritto:
Il db è lo stesso, è stato fatto un clone... quindi gli indici se ci sono, sono su tutti e due gli ambienti....