Re: [postgresql-it] Passaggio da 9.3 a 10 e calo prestazioni

  • From: Enrico Pirozzi <e.pirozzi@xxxxxxxxxxx>
  • To: postgresql-it@xxxxxxxxxxxxx
  • Date: Wed, 26 Sep 2018 18:59:35 +0200

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....

--
Enrico Pirozzi
NBS Group S.r.l.
via Val Tiberina 23/A
63074, San Benedetto del Tronto (AP)
Tel. 0735-7626201




Other related posts: