Note that there are some explanatory texts on larger screens.

plurals
  1. POPostgreslq Explain analyse : hidden time
    primarykey
    data
    text
    <p>I've a long query and <code>explain analyze</code> isn't helping.</p> <p>Version of PostgreSQL : 9.1</p> <p>The current plan:</p> <p><a href="http://explain.depesz.com/s/sWG" rel="nofollow">http://explain.depesz.com/s/sWG</a></p> <p>The query :</p> <pre><code>SELECT temps_mois.rfoperyea AS c0, dwhinv.dwhinv___rfovsnide AS c1, rfoadv_1.rfoadvsup AS c2, rfoadv_2.rfoadvsup AS c3, rsaaev_3.rsaaevsup AS c4, Sum(( CASE WHEN dwhinv.dwhinv___rfodomide = 'LABO' AND dwhinv.dwhinv___rfoindide = '17' THEN dwhinv.dwhinvqte ELSE 0 END )) AS m0, Sum(( CASE WHEN dwhinv.dwhinv___rfodomide = 'LABO' AND dwhinv.dwhinv___rfoindide = '18' THEN dwhinv.dwhinvqte ELSE 0 END )) AS m1, Sum(( CASE WHEN dwhinv.dwhinv___rfodomide = 'LABO' AND dwhinv.dwhinv___rfoindide = '15' THEN dwhinv.dwhinvqte ELSE 0 END )) AS m2, Sum(( CASE WHEN dwhinv.dwhinv___rfodomide = 'LABO' AND dwhinv.dwhinv___rfoindide = '16' THEN dwhinv.dwhinvqte ELSE 0 END )) AS m3, Sum(( CASE WHEN dwhinv.dwhinv___rfodomide = 'ANAPATH' AND dwhinv.dwhinv___rfoindide = '20' THEN dwhinv.dwhinvqte ELSE 0 END )) AS m4, Sum(( CASE WHEN dwhinv.dwhinv___rfodomide = 'ANAPATH' AND dwhinv.dwhinv___rfoindide = '17' THEN dwhinv.dwhinvqte ELSE 0 END )) AS m5, Sum(( CASE WHEN dwhinv.dwhinv___rfodomide = 'ANAPATH' AND dwhinv.dwhinv___rfoindide = '18' THEN dwhinv.dwhinvqte ELSE 0 END )) AS m6, Sum(( CASE WHEN dwhinv.dwhinv___rfodomide = 'ANAPATH' AND dwhinv.dwhinv___rfoindide = '15' THEN dwhinv.dwhinvqte ELSE 0 END )) AS m7, Sum(( CASE WHEN dwhinv.dwhinv___rfodomide = 'ANAPATH' AND dwhinv.dwhinv___rfoindide = '19' THEN dwhinv.dwhinvqte ELSE 0 END )) AS m8, Sum(( CASE WHEN dwhinv.dwhinv___rfodomide = 'ANAPATH' AND dwhinv.dwhinv___rfoindide = '16' THEN dwhinv.dwhinvqte ELSE 0 END )) AS m9 FROM rfoper_temps_mois AS temps_mois, dwhinv AS dwhinv, rfoadv AS rfoadv_1, rfoadv AS rfoadv_2, rsaaev AS rsaaev_3 WHERE ( temps_mois.rfoper___rforefide = 'REF' ) AND ( dwhinv.dwhinv___rforefide = 'REF' AND ( ( dwhinv.dwhinv___rfodomide = 'LABO' AND dwhinv.dwhinv___rfoindide = '17' ) OR ( dwhinv.dwhinv___rfodomide = 'LABO' AND dwhinv.dwhinv___rfoindide = '18' ) OR ( dwhinv.dwhinv___rfodomide = 'LABO' AND dwhinv.dwhinv___rfoindide = '15' ) OR ( dwhinv.dwhinv___rfodomide = 'LABO' AND dwhinv.dwhinv___rfoindide = '16' ) OR ( dwhinv.dwhinv___rfodomide = 'ANAPATH' AND dwhinv.dwhinv___rfoindide = '20' ) OR ( dwhinv.dwhinv___rfodomide = 'ANAPATH' AND dwhinv.dwhinv___rfoindide = '17' ) OR ( dwhinv.dwhinv___rfodomide = 'ANAPATH' AND dwhinv.dwhinv___rfoindide = '18' ) OR ( dwhinv.dwhinv___rfodomide = 'ANAPATH' AND dwhinv.dwhinv___rfoindide = '15' ) OR ( dwhinv.dwhinv___rfodomide = 'ANAPATH' AND dwhinv.dwhinv___rfoindide = '19' ) OR ( dwhinv.dwhinv___rfodomide = 'ANAPATH' AND dwhinv.dwhinv___rfoindide = '16' ) ) ) AND dwhinv.dwhinvdtd = temps_mois.rfoperdtd AND temps_mois.rfoperyea IN ( '2011', '2012' ) AND dwhinv.dwhinv___rfovsnide = 'version' AND ( rfoadv_1.rfoadv___rfovdeide = 'STRC' AND rfoadv_1.rfoadvrvs = 1 AND rfoadv_1.rfoadv___rforefide = 'REF' ) AND dwhinv.dwhinv_d2rfodstide = rfoadv_1.rfoadvinf AND rfoadv_1.rfoadvsup = 'REF' AND ( rfoadv_2.rfoadv___rfovdeide = 'STRC_REF' AND rfoadv_2.rfoadvrvs = 1 AND rfoadv_2.rfoadv___rforefide = 'REF' ) AND dwhinv.dwhinv_p2rfodstide = rfoadv_2.rfoadvinf AND rfoadv_2.rfoadvsup IN ( '01', '04', '05', '06', '07', '99', 'REF', 'CR2107', 'CR2108', 'CR2109', 'CR2110', 'CR2111', 'CR2114', 'CR2116', 'CR2126', 'CR4101', 'CR4201' ) AND ( rsaaev_3.rsaaev___rsavedide = 'PRESTA_ACTE' AND rsaaev_3.rsaaevrvs = 1 AND rsaaev_3.rsaaev___rforefide = 'REF' ) AND dwhinv.dwhinv___rsaedtide = rsaaev_3.rsaaevinf AND rsaaev_3.rsaaevsup IN ( 'PRISE_EN_CHARGE', 'REG_EXT', 'REG_HOSPI_SEANCE' ) GROUP BY temps_mois.rfoperyea, dwhinv.dwhinv___rfovsnide, rfoadv_1.rfoadvsup, rfoadv_2.rfoadvsup, rsaaev_3.rsaaevsup </code></pre> <p>It seems like several seconds elapse between the HashJoin and the Hashaggregate. Hashjoin takes 1200 to 1600ms. With the HashAggregate it jumps to 5645ms.</p> <p>Might anyone else who ever encountered this problem be able to explain the difference?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload