Hi Thom,
 
I did a select count(*) from xdf.xdf_admin_hierarchy and it returns 84211 on 
both databases postgres 8.3.8 and 8.4.1.
The amount of data is exactly the same in both databases as they are restored 
from the same dump.
 
Regards
 
David


  _____  

        Von: Thom Brown [mailto:thombr...@gmail.com] 
        Gesendet: Dienstag, 8. Dezember 2009 11:12
        An: Schmitz, David
        Cc: Andres Freund; pgsql-performance@postgresql.org
        Betreff: Re: [PERFORM] performance penalty between Postgresql 8.3.8 and 
8.4.1
        
        
        2009/12/8 Schmitz, David <david.schm...@harman.com>
        

                Hi Andres,
                
                EXPLAIN ANALYZE
                select ah.ORDER8_ID, ah.BUILTUP_ID, rl.LINK_ID, la.SIDE,
                                   rl.ROAD_NAME_ID, rl.LEFT_ADDRESS_RANGE_ID, 
rl.RIGHT_ADDRESS_RANGE_ID,
                                   rl.IS_EXIT_NAME, rl.EXPLICATABLE, 
rl.IS_JUNCTION_NAME,
                                   rl.IS_NAME_ON_ROADSIGN, rl.IS_POSTAL_NAME, 
rl.IS_STALE_NAME,
                                   rl.IS_VANITY_NAME, rl.ROAD_LINK_ID, 
rn.STREET_NAME,
                                   rn.ROUTE_TYPE
                               from rdf.xdf_ADMIN_HIERARCHY ah
                               join xdf.xdf_LINK_ADMIN la
                               on ah.ADMIN_PLACE_ID = la.ADMIN_PLACE_ID
                               join xdf.xdf_ROAD_LINK rl
                               on la.LINK_ID = rl.LINK_ID
                               join xdf.xdf_ROAD_NAME rn
                               on rl.ROAD_NAME_ID = rn.ROAD_NAME_ID
                               where rl.IS_EXIT_NAME = 'N'
                                   and rl.IS_JUNCTION_NAME = 'N'
                                   and rn.ROAD_NAME_ID between 158348561  and 
158348660
                               order by rl.ROAD_NAME_ID, ah.ORDER8_ID, 
ah.BUILTUP_ID, rl.LINK_ID;
                
                On Postgresql 8.4.1
                
                Sort  (cost=129346.71..129498.64 rows=60772 width=61) (actual 
time=100.358..100.496 rows=1444 loops=1)
                
                 Sort Key: rl.road_name_id, ah.order8_id, ah.builtup_id, 
rl.link_id
                
                 Sort Method:  quicksort  Memory: 252kB
                 ->  Hash Join  (cost=2603.57..124518.03 rows=60772 width=61) 
(actual time=62.359..97.268 rows=1444 loops=1)
                
                       Hash Cond: (la.admin_place_id = ah.admin_place_id)
                
                       ->  Nested Loop  (cost=6.82..120781.81 rows=60772 
width=57) (actual time=0.318..33.600 rows=1444 loops=1)
                             ->  Nested Loop  (cost=6.82..72383.98 rows=21451 
width=51) (actual time=0.232..12.359 rows=722 loops=1)
                                   ->  Index Scan using pk_xdf_road_name on 
xdf_road_name rn  (cost=0.00..11.24 rows=97 width=21) (actual time=0.117..0.185 
rows=100 loops=1)
                
                                         Index Cond: ((road_name_id >= 
158348561) AND (road_name_id <= 158348660))
                
                                   ->  Bitmap Heap Scan on xdf_road_link rl  
(cost=6.82..743.34 rows=222 width=34) (actual time=0.025..0.115 rows=7 
loops=100)
                
                                         Recheck Cond: (rl.road_name_id = 
rn.road_name_id)
                                         Filter: ((rl.is_exit_name = 
'N'::bpchar) AND (rl.is_junction_name = 'N'::bpchar))
                
                                         ->  Bitmap Index Scan on 
nx_xdfroadlink_roadnameid  (cost=0.00..6.76 rows=222 width=0) (actual 
time=0.008..0.008 rows=7 loops=100)
                
                                               Index Cond: (rl.road_name_id = 
rn.road_name_id)
                
                             ->  Index Scan using nx_xdflinkadmin_linkid on 
xdf_link_admin la  (cost=0.00..2.22 rows=3 width=10) (actual time=0.023..0.028 
rows=2 loops=722)
                
                                   Index Cond: (la.link_id = rl.link_id)
                
                       ->  Hash  (cost=1544.11..1544.11 rows=84211 width=12) 
(actual time=61.924..61.924 rows=84211 loops=1)
                             ->  Seq Scan on xdf_admin_hierarchy ah  
(cost=0.00..1544.11 rows=84211 width=12) (actual time=0.017..33.442 rows=84211 
loops=1)
                Total runtime: 101.446 ms
                
                
                and on Postgresql  8.3.8:
                
                Sort  (cost=3792.75..3792.95 rows=81 width=61) (actual 
time=28.928..29.074 rows=1444 loops=1)
                
                 Sort Key: rl.road_name_id, ah.order8_id, ah.builtup_id, 
rl.link_id
                
                 Sort Method:  quicksort  Memory: 252kB
                 ->  Nested Loop  (cost=21.00..3790.18 rows=81 width=61) 
(actual time=0.210..26.098 rows=1444 loops=1)
                       ->  Nested Loop  (cost=21.00..3766.73 rows=81 width=57) 
(actual time=0.172..19.148 rows=1444 loops=1)
                             ->  Nested Loop  (cost=21.00..3733.04 rows=14 
width=51) (actual time=0.129..6.126 rows=722 loops=1)
                                   ->  Index Scan using pk_xdf_road_name on 
xdf_road_name rn  (cost=0.00..8.32 rows=1 width=21) (actual time=0.059..0.117 
rows=100 loops=1)
                
                                         Index Cond: ((road_name_id >= 
158348561) AND (road_name_id <= 158348660))
                
                                   ->  Bitmap Heap Scan on xdf_road_link rl  
(cost=21.00..3711.97 rows=1020 width=34) (actual time=0.015..0.055 rows=7 
loops=100)
                
                                         Recheck Cond: (rl.road_name_id = 
rn.road_name_id)
                                         Filter: ((rl.is_exit_name = 
'N'::bpchar) AND (rl.is_junction_name = 'N'::bpchar))
                
                                         ->  Bitmap Index Scan on 
nx_xdfroadlink_roadnameid  (cost=0.00..20.75 rows=1020 width=0) (actual 
time=0.007..0.007 rows=7 loops=100)
                
                                               Index Cond: (rl.road_name_id = 
rn.road_name_id)
                
                             ->  Index Scan using nx_xdflinkadmin_linkid on 
xdf_link_admin la  (cost=0.00..2.31 rows=8 width=10) (actual time=0.014..0.017 
rows=2 loops=722)
                
                                   Index Cond: (la.link_id = rl.link_id)
                
                       ->  Index Scan using pk_xdf_admin_hierarchy on 
xdf_admin_hierarchy ah  (cost=0.00..0.28 rows=1 width=12) (actual 
time=0.003..0.004 rows=1 loops=1444)
                
                             Index Cond: (ah.admin_place_id = la.admin_place_id)
                
                Total runtime: 29.366 ms
                
                Hope this gives any clue. Or did I missunderstand you?
                
                Regards
                
                David
                
                
                >-----Ursprüngliche Nachricht-----
                >Von: Andres Freund [mailto:and...@anarazel.de]
                >Gesendet: Dienstag, 8. Dezember 2009 00:25
                >An: pgsql-performance@postgresql.org
                >Cc: Schmitz, David
                >Betreff: Re: [PERFORM] performance penalty between Postgresql
                
                >8.3.8 and 8.4.1
                >
                
                >Hi David,
                >
                >On Monday 07 December 2009 23:05:14 Schmitz, David wrote:
                >> With our data it is a performance difference from 1h16min
                >(8.3.8) to
                >> 2h43min (8.4.1)
                >Can you afford a explain analyze run overnight or so for both?
                >
                >Andres
                >
                
                




        Your output shows that the xdf_admin_hierarchy tables between versions 
are drastically different.  8.3.8 only contains 1 row, whereas 8.4.1 contains 
84211 rows.
        
        Thom 
 
*******************************************
innovative systems GmbH Navigation-Multimedia
Geschaeftsfuehrung: Edwin Summers - Michael Juergen Mauser
Sitz der Gesellschaft: Hamburg - Registergericht: Hamburg HRB 59980 
 
*******************************************
Diese E-Mail enthaelt vertrauliche und/oder rechtlich geschuetzte 
Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail 
irrtuemlich erhalten haben, informieren Sie bitte sofort den Absender und 
loeschen Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte Weitergabe 
dieser Mail ist nicht gestattet.
This e-mail may contain confidential and/or privileged information. If you are 
not the intended recipient (or have received this e-mail in error) please 
notify the sender immediately and delete this e-mail. Any unauthorized copying, 
disclosure or distribution of the contents in this e-mail is strictly forbidden.
*******************************************

Reply via email to