Re: Huge Performance Difference on Similar Query in Pg7.2 - Mailing list pgsql-general

From Heiko Klein
Subject Re: Huge Performance Difference on Similar Query in Pg7.2
Date
Msg-id 15514.64568.516307.214946@polar.oslo.dnmi.no
Whole thread Raw
In response to Re: Huge Performance Difference on Similar Query in Pg7.2  ("Luis Alberto Amigo Navarro" <lamigo@atc.unican.es>)
List pgsql-general
Luis Alberto Amigo Navarro writes:
 > can you send "explain analyze" instead of "explain" results in order to view
 > real time?
 > Regards
 >
Here it is:
1)
emep=> explain analyze select  count(*) from  EmissionsView ,    DataSetsView where  DataSetsView.setid =
EmissionsView.setidand     EmissionsView.setid = '4614' ;  
NOTICE:  QUERY PLAN:

Aggregate  (cost=5975.66..5975.66 rows=1 width=131) (actual time=1264.12..1264.13 rows=1 loops=1)
  ->  Hash Join  (cost=5958.18..5975.58 rows=35 width=131) (actual time=1205.90..1262.46 rows=1606 loops=1)
        ->  Hash Join  (cost=5956.30..5972.99 rows=35 width=127) (actual time=1197.85..1248.93 rows=1606 loops=1)
              ->  Hash Join  (cost=5954.41..5970.40 rows=35 width=123) (actual time=1197.50..1224.92 rows=1606 loops=1)
                    ->  Seq Scan on reports  (cost=0.00..11.78 rows=378 width=8) (actual time=0.02..1.03 rows=378
loops=1)
                    ->  Hash  (cost=5954.30..5954.30 rows=42 width=115) (actual time=1193.55..1193.55 rows=0 loops=1)
                          ->  Nested Loop  (cost=4375.32..5954.30 rows=42 width=115) (actual time=1121.44..1188.23
rows=1606loops=1) 
                                ->  Nested Loop  (cost=4375.32..5812.95 rows=42 width=103) (actual
time=1115.41..1134.58rows=1606 loops=1) 
                                      ->  Seq Scan on footnotes  (cost=0.00..1.01 rows=1 width=4) (actual
time=0.01..0.02rows=1 loops=1) 
                                      ->  Materialize  (cost=5811.31..5811.31 rows=42 width=99) (actual
time=1115.36..1116.33rows=1606 loops=1) 
                                            ->  Hash Join  (cost=4375.32..5811.31 rows=42 width=99) (actual
time=1047.90..1112.31rows=1606 loops=1) 
                                                  ->  Hash Join  (cost=4371.95..5796.47 rows=307 width=77) (actual
time=1042.42..1076.85rows=1606 loops=1) 
                                                        ->  Merge Join  (cost=4370.73..5789.88 rows=307 width=50)
(actualtime=1039.84..1059.42 rows=1606 loops=1) 
                                                              ->  Sort  (cost=4370.73..4370.73 rows=28192 width=38)
(actualtime=996.25..1001.69 rows=3830 loops=1) 
                                                                    ->  Hash Join  (cost=24.06..1834.10 rows=28192
width=38)(actual time=7.50..507.66 rows=33593 loops=1) 
                                                                          ->  Hash Join  (cost=22.17..1268.37
rows=28192width=34) (actual time=7.15..303.78 rows=33593 loops=1) 
                                                                                ->  Seq Scan on datasets
(cost=0.00..724.86rows=33786 width=22) (actual time=0.36..122.78 rows=33786 loops=1) 
                                                                                ->  Hash  (cost=21.23..21.23 rows=378
width=12)(actual time=6.73..6.73 rows=0 loops=1) 
                                                                                      ->  Hash Join  (cost=1.89..21.23
rows=378width=12) (actual time=3.17..6.03 rows=377 loops=1) 
                                                                                            ->  Seq Scan on reports
(cost=0.00..11.78rows=378 width=8) (actual time=2.83..4.05 rows=378 loops=1) 
                                                                                            ->  Hash  (cost=1.71..1.71
rows=71width=4) (actual time=0.26..0.26 rows=0 loops=1) 
                                                                                                  ->  Seq Scan on areas
(cost=0.00..1.71 rows=71 width=4) (actual time=0.01..0.14 rows=71 loops=1) 
                                                                          ->  Hash  (cost=1.71..1.71 rows=71 width=4)
(actualtime=0.27..0.27 rows=0 loops=1) 
                                                                                ->  Seq Scan on areas  (cost=0.00..1.71
rows=71width=4) (actual time=0.01..0.15 rows=71 loops=1) 
                                                              ->  Index Scan using lhsecgriemis_setid_idx on emissions
(cost=0.00..1343.91rows=368 width=12) (actual time=33.77..42.61 rows=1606 loops=1) 
                                                        ->  Hash  (cost=1.18..1.18 rows=18 width=27) (actual
time=2.49..2.49rows=0 loops=1) 
                                                              ->  Seq Scan on datatypes  (cost=0.00..1.18 rows=18
width=27)(actual time=2.40..2.44 rows=18 loops=1) 
                                                  ->  Hash  (cost=3.09..3.09 rows=109 width=22) (actual time=5.41..5.41
rows=0loops=1) 
                                                        ->  Seq Scan on sectordefinitions  (cost=0.00..3.09 rows=109
width=22)(actual time=4.89..5.19 rows=109 loops=1) 
                                ->  Index Scan using datasets_setid_idx on datasets  (cost=0.00..3.37 rows=1 width=12)
(actualtime=0.02..0.02 rows=1 loops=1606) 
              ->  Hash  (cost=1.71..1.71 rows=71 width=4) (actual time=0.25..0.25 rows=0 loops=1)
                    ->  Seq Scan on areas  (cost=0.00..1.71 rows=71 width=4) (actual time=0.01..0.13 rows=71 loops=1)
        ->  Hash  (cost=1.71..1.71 rows=71 width=4) (actual time=7.95..7.95 rows=0 loops=1)
              ->  Seq Scan on areas  (cost=0.00..1.71 rows=71 width=4) (actual time=7.69..7.83 rows=71 loops=1)
Total runtime: 1361.51 msec

EXPLAIN



2)
emep=> explain analyze select  count(*) from  EmissionsView ,    DataSetsView where  DataSetsView.setid =
EmissionsView.setidand     DataSetsView.setid = '4614' ; 
NOTICE:  QUERY PLAN:

Aggregate  (cost=91660.36..91660.36 rows=1 width=131) (actual time=64414.80..64414.80 rows=1 loops=1)
  ->  Hash Join  (cost=2732.23..91660.35 rows=3 width=131) (actual time=58428.47..64413.14 rows=1606 loops=1)
        ->  Nested Loop  (cost=2719.53..91058.61 rows=117798 width=103) (actual time=49523.50..63005.67 rows=1025405
loops=1)
              ->  Seq Scan on footnotes  (cost=0.00..1.01 rows=1 width=4) (actual time=0.01..0.03 rows=1 loops=1)
              ->  Materialize  (cost=89290.63..89290.63 rows=117798 width=99) (actual time=49523.43..51974.76
rows=1025405loops=1) 
                    ->  Hash Join  (cost=2719.53..89290.63 rows=117798 width=99) (actual time=1619.56..47188.00
rows=1025405loops=1) 
                          ->  Hash Join  (cost=2716.17..56957.45 rows=863754 width=77) (actual time=1617.06..27358.00
rows=1035128loops=1) 
                                ->  Seq Scan on emissions  (cost=0.00..18502.34 rows=1035134 width=12) (actual
time=6.42..5027.94rows=1035134 loops=1) 
                                ->  Hash  (cost=2328.69..2328.69 rows=28192 width=65) (actual time=848.29..848.29
rows=0loops=1) 
                                      ->  Hash Join  (cost=25.29..2328.69 rows=28192 width=65) (actual
time=12.33..762.21rows=33593 loops=1) 
                                            ->  Hash Join  (cost=24.06..1834.10 rows=28192 width=38) (actual
time=10.57..519.08rows=33593 loops=1) 
                                                  ->  Hash Join  (cost=22.17..1268.37 rows=28192 width=34) (actual
time=10.22..315.37rows=33593 loops=1) 
                                                        ->  Seq Scan on datasets  (cost=0.00..724.86 rows=33786
width=22)(actual time=0.44..129.13 rows=33786 loops=1) 
                                                        ->  Hash  (cost=21.23..21.23 rows=378 width=12) (actual
time=9.71..9.71rows=0 loops=1) 
                                                              ->  Hash Join  (cost=1.89..21.23 rows=378 width=12)
(actualtime=5.23..8.98 rows=377 loops=1) 
                                                                    ->  Seq Scan on reports  (cost=0.00..11.78 rows=378
width=8)(actual time=4.90..7.04 rows=378 loops=1) 
                                                                    ->  Hash  (cost=1.71..1.71 rows=71 width=4) (actual
time=0.26..0.26rows=0 loops=1) 
                                                                          ->  Seq Scan on areas  (cost=0.00..1.71
rows=71width=4) (actual time=0.01..0.14 rows=71 loops=1) 
                                                  ->  Hash  (cost=1.71..1.71 rows=71 width=4) (actual time=0.27..0.27
rows=0loops=1) 
                                                        ->  Seq Scan on areas  (cost=0.00..1.71 rows=71 width=4)
(actualtime=0.01..0.15 rows=71 loops=1) 
                                            ->  Hash  (cost=1.18..1.18 rows=18 width=27) (actual time=1.69..1.69 rows=0
loops=1)
                                                  ->  Seq Scan on datatypes  (cost=0.00..1.18 rows=18 width=27) (actual
time=1.60..1.64rows=18 loops=1) 
                          ->  Hash  (cost=3.09..3.09 rows=109 width=22) (actual time=2.44..2.44 rows=0 loops=1)
                                ->  Seq Scan on sectordefinitions  (cost=0.00..3.09 rows=109 width=22) (actual
time=1.91..2.20rows=109 loops=1) 
        ->  Hash  (cost=12.70..12.70 rows=1 width=28) (actual time=25.72..25.72 rows=0 loops=1)
              ->  Hash Join  (cost=10.62..12.70 rows=1 width=28) (actual time=25.53..25.71 rows=1 loops=1)
                    ->  Seq Scan on areas  (cost=0.00..1.71 rows=71 width=4) (actual time=0.01..0.14 rows=71 loops=1)
                    ->  Hash  (cost=10.62..10.62 rows=1 width=24) (actual time=25.44..25.44 rows=0 loops=1)
                          ->  Nested Loop  (cost=0.00..10.62 rows=1 width=24) (actual time=25.24..25.43 rows=1 loops=1)
                                ->  Nested Loop  (cost=0.00..5.96 rows=1 width=16) (actual time=21.79..21.98 rows=1
loops=1)
                                      ->  Index Scan using datasets_setid_idx on datasets  (cost=0.00..3.37 rows=1
width=12)(actual time=15.48..15.48 rows=1 loops=1) 
                                      ->  Seq Scan on areas  (cost=0.00..1.71 rows=71 width=4) (actual time=6.23..6.38
rows=71loops=1) 
                                ->  Index Scan using reports_pkey on reports  (cost=0.00..4.64 rows=1 width=8) (actual
time=3.44..3.44rows=1 loops=1) 
Total runtime: 64568.82 msec

EXPLAIN

pgsql-general by date:

Previous
From: "Luis Alberto Amigo Navarro"
Date:
Subject: Re: Huge Performance Difference on Similar Query in Pg7.2
Next
From: "Luis Alberto Amigo Navarro"
Date:
Subject: Re: Huge Performance Difference on Similar Query in Pg7.2