Thread: Very strange query difference between 7.3.6 and 7.4.6 (7.3.6 kicking 7.4.6 butt)

Very strange query difference between 7.3.6 and 7.4.6 (7.3.6 kicking 7.4.6 butt)

From
"Joshua D. Drake"
Date:
Specs:

7.3.6 machine Dual Athlon MP
   2 GIG of ram,
   4 Drive IDE (3ware) RAID 10
   OS FC1 with 2.4 kernel

7.4.6 machine Dual Opteron MP (64bit PostgreSQL),
   2 Gig of Ram
   10 Drive RAID 10 with 128 Meg battery backed cache (3WARE).
   OS FC3 x86_64 with 2.6 kernel

Essentials parameters:

7.3.6:

shared_buffers = 8192
wal_buffers = 2048
sort_mem = 4096
checkpoint_segments = 25
effective_cache_size = 65536
random_page_cost = 1.5
statistics_target = 150

7.4.6
Same as above except 8192 sort mem and 50 checkpoint segments

Both are running fsync with open_sync

Both have been vacuumed and analyze repeatedly while trying to figure
this out.

Explain Analyzes:

7.3.6 (old)

 Aggregate  (cost=320.49..324.89 rows=7 width=338) (actual time=630.21..630.21 rows=1 loops=1)
   ->  Group  (cost=320.49..324.71 rows=70 width=338) (actual time=447.98..623.91 rows=8845 loops=1)
         ->  Sort  (cost=320.49..320.67 rows=70 width=338) (actual time=447.95..460.77 rows=8845 loops=1)
               Sort Key: p.post_id, t.topic_id, t.topic_title, t.topic_status, t.topic_replies, t.topic_time,
t.topic_type,t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id, f.auth_view, f.auth_read,
f.auth_post,f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote,
f.auth_attachments
               ->  Nested Loop  (cost=0.00..318.33 rows=70 width=338) (actual time=0.41..109.19 rows=8845 loops=1)
                     ->  Nested Loop  (cost=0.00..17.55 rows=1 width=330) (actual time=0.11..0.34 rows=1 loops=1)
                           ->  Nested Loop  (cost=0.00..6.75 rows=1 width=291) (actual time=0.08..0.12 rows=1 loops=1)
                                 ->  Index Scan using nuke_bbposts_pkey on nuke_bbposts p  (cost=0.00..3.21 rows=1
width=8)(actual time=0.04..0.05 rows=1 loops=1) 
                                       Index Cond: (post_id = 352888)
                                 ->  Index Scan using nuke_bbtopics_pkey on nuke_bbtopics t  (cost=0.00..3.53 rows=1
width=283)(actual time=0.02..0.05 rows=1 loops=1) 
                                       Index Cond: (t.topic_id = "outer".topic_id)
                           ->  Index Scan using nuke_bbforums_pkey on nuke_bbforums f  (cost=0.00..10.78 rows=1
width=39)(actual time=0.02..0.21 rows=1 loops=1) 
                                 Index Cond: (f.forum_id = "outer".forum_id)
                     ->  Index Scan using topic_id_nuke_bbposts_index on nuke_bbposts p2  (cost=0.00..299.33 rows=117
width=8)(actual time=0.29..31.68 rows=8845 loops=1) 
                           Index Cond: (p2.topic_id = "outer".topic_id)
                           Filter: (post_id <= 352888)
 Total runtime: 633.72 msec
(17 rows)

7.4.6 (new)

GroupAggregate  (cost=209.11..213.73 rows=71 width=328) (actual time=3701.837..3701.837 rows=1 loops=1)
   ->  Sort  (cost=209.11..209.29 rows=71 width=328) (actual time=2725.518..2728.590 rows=8845 loops=1)
         Sort Key: p.post_id, t.topic_id, t.topic_title, t.topic_status, t.topic_replies, t.topic_time, t.topic_type,
t.topic_vote,t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post,
f.auth_reply,f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote,
f.auth_attachments
         ->  Nested Loop  (cost=0.00..206.93 rows=71 width=328) (actual time=0.621..190.112 rows=8845 loops=1)
               ->  Nested Loop  (cost=0.00..9.04 rows=1 width=328) (actual time=0.347..0.365 rows=1 loops=1)
                     ->  Nested Loop  (cost=0.00..6.04 rows=1 width=291) (actual time=0.298..0.307 rows=1 loops=1)
                           ->  Index Scan using nuke_bbposts_pkey on nuke_bbposts p  (cost=0.00..3.01 rows=1 width=8)
(actualtime=0.209..0.212 rows=1 loops=1) 
                                 Index Cond: (post_id = 352888)
                           ->  Index Scan using nuke_bbtopics_pkey on nuke_bbtopics t  (cost=0.00..3.01 rows=1
width=283)(actual time=0.069..0.073 rows=1 loops=1) 
                                 Index Cond: (t.topic_id = "outer".topic_id)
                     ->  Index Scan using nuke_bbforums_pkey on nuke_bbforums f  (cost=0.00..2.99 rows=1 width=39)
(actualtime=0.028..0.035 rows=1 loops=1) 
                           Index Cond: (f.forum_id = "outer".forum_id)
               ->  Index Scan using topic_id_nuke_bbposts_index on nuke_bbposts p2  (cost=0.00..196.46 rows=114
width=8)(actual time=0.256..95.501 rows=8845 loops=1) 
                     Index Cond: (p2.topic_id = "outer".topic_id)
                     Filter: (post_id <= 352888)
 Total runtime: 3728.376 ms
(16 rows)


If you look at the second line in each explain it is the sort that is
causing the grief. On 7.3.6 it only takes say 447ms (on an completely
unused machine), on the Opteron it takes 2725.518.

The query on the opteron even after a fresh restart of apache and
PostgreSQL takes at least 1100 ms.

Other 7.4.6 information:

[root@www contrib]# mpstat
Linux 2.6.10-1.770_FC3smp (www.radioparadise.com)       03/19/2005

10:05:59 AM  CPU   %user   %nice %system %iowait    %irq   %soft
%idle    intr/s
10:05:59 AM  all    4.48    0.00    0.79    2.96    0.01    0.04
91.72   1112.02


[root@www contrib]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system--
----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy
id wa
 1  0   3560 230524  31196 1599572    0    0    10   189    3     3  4
1 92  3


[root@www contrib]# iostat
Linux 2.6.10-1.770_FC3smp (www.radioparadise.com)       03/19/2005

avg-cpu:  %user   %nice    %sys %iowait   %idle
           4.48    0.00    0.84    2.96   91.72

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda              29.72        38.28       757.12   49022777  969575882




The database is identical in the sense of schema (direct dump from 7.3.6
to 7.4.6).
Both were initalized with initdb --no-locale .

Any ideas?

Sincerely,

Joshua D. Drake




--
Command Prompt, Inc., home of Mammoth PostgreSQL - S/ODBC and S/JDBC
Postgresql support, programming shared hosting and dedicated hosting.
+1-503-667-4564 - jd@commandprompt.com - http://www.commandprompt.com
PostgreSQL Replicator -- production quality replication for PostgreSQL


Attachment
"Joshua D. Drake" <jd@commandprompt.com> writes:
> If you look at the second line in each explain it is the sort that is 
> causing the grief.

The aggregation is a great deal worse as well.  I suspect that for some
reason the comparison operations involved in the sorting and grouping
are much slower on the FC3 machine.  What are the data types of the
leading sort keys ... and are you *certain* the FC3 database has
LC_COLLATE and LC_CTYPE set to C?
        regards, tom lane


Re: Very strange query difference between 7.3.6 and 7.4.6

From
"Joshua D. Drake"
Date:
Tom Lane wrote:

>"Joshua D. Drake" <jd@commandprompt.com> writes:
>
>
>>If you look at the second line in each explain it is the sort that is
>>causing the grief.
>>
>>
>
>The aggregation is a great deal worse as well.  I suspect that for some
>reason the comparison operations involved in the sorting and grouping
>are much slower on the FC3 machine.  What are the data types of the
>leading sort keys ... and are you *certain* the FC3 database has
>LC_COLLATE and LC_CTYPE set to C?
>
>
Well I definately did a initdb --no-locale

34  bin/initdb -D cdata --no-locale

But I didn't specify LC_COLLATE or LC_CTYPE explicitly.

I did set LANG="C" in /etc/sysconfig/i18n however.

Sincerely,

Joshua D. Drake



>            regards, tom lane
>
>


--
Command Prompt, Inc., home of Mammoth PostgreSQL - S/ODBC and S/JDBC
Postgresql support, programming shared hosting and dedicated hosting.
+1-503-667-4564 - jd@commandprompt.com - http://www.commandprompt.com
PostgreSQL Replicator -- production quality replication for PostgreSQL


Attachment

Re: Very strange query difference between 7.3.6 and 7.4.6

From
"Joshua D. Drake"
Date:
>>
>>
> Well I definately did a initdb --no-locale
>
> 34  bin/initdb -D cdata --no-locale
>
> But I didn't specify LC_COLLATE or LC_CTYPE explicitly.
>
> I did set LANG="C" in /etc/sysconfig/i18n however.

Just to be specific...

show all from psql:

lc_collate                           | C
 lc_ctype                             | C
 lc_messages                          | C
 lc_monetary                          | C
 lc_numeric                           | C
 lc_time                              | C


Sincerely,

Joshua D. Drake



>
> Sincerely,
>
> Joshua D. Drake
>
>
>
>>             regards, tom lane
>>
>>
>
>
>------------------------------------------------------------------------
>
>
>---------------------------(end of broadcast)---------------------------
>TIP 3: if posting/reading through Usenet, please send an appropriate
>      subscribe-nomail command to majordomo@postgresql.org so that your
>      message can get through to the mailing list cleanly
>
>


--
Command Prompt, Inc., home of Mammoth PostgreSQL - S/ODBC and S/JDBC
Postgresql support, programming shared hosting and dedicated hosting.
+1-503-667-4564 - jd@commandprompt.com - http://www.commandprompt.com
PostgreSQL Replicator -- production quality replication for PostgreSQL


Attachment
"Joshua D. Drake" <jd@commandprompt.com> writes:
> Tom Lane wrote:
>> The aggregation is a great deal worse as well.  I suspect that for some
>> reason the comparison operations involved in the sorting and grouping
>> are much slower on the FC3 machine.  What are the data types of the
>> leading sort keys ... 
>> 
> Data types are:

> post_id integer
> topic_id integer
> topic_title character(255) (I have no idea why ;))

> forum_status and forum_id are smallints...

> The rest are pretty basic integers.

Hm.  What is the data like --- in particular, are the topic_ids unique
in the data processed by the sort?  I'm wondering how often the
sort/group comparisons would even look at columns beyond the first
two ...
        regards, tom lane


Re: Very strange query difference between 7.3.6 and 7.4.6

From
"Joshua D. Drake"
Date:
>>The rest are pretty basic integers.
>>
>>
>
>Hm.  What is the data like --- in particular, are the topic_ids unique
>in the data processed by the sort?
>
Yes topic_ids are the primary key. Here is the nuke_bbtopics structure:

      Column        |      Type      |
Modifiers
---------------------+----------------+---------------------------------------------------------------------
 topic_id            | integer        | not null default
nextval('public.nuke_bbtopics_topic_id_seq'::text)
 forum_id            | smallint       | not null default 0::smallint
 topic_title         | character(255) | not null default ''::bpchar
 topic_poster        | integer        | not null default 0
 topic_time          | integer        | not null default 0
 topic_views         | integer        | not null default 0
 topic_replies       | integer        | not null default 0
 topic_status        | smallint       | not null default 0::smallint
 topic_vote          | smallint       | not null default 0::smallint
 topic_type          | smallint       | not null default 0::smallint
 topic_last_post_id  | integer        | not null default 0
 topic_first_post_id | integer        | not null default 0
 topic_moved_id      | integer        | not null default 0
 news_id             | integer        | not null default 0
Indexes:
    "nuke_bbtopics_pkey" primary key, btree (topic_id)
    "forum_id_nuke_bbtopics" btree (forum_id)
    "nuke_bbtopics_news_id" btree (news_id)
    "topic_last_post_id_nuke_bbtopics" btree (topic_last_post_id)
    "topic_type_nuke_bbtopics" btree (topic_type)
    "topic_vote_nuke_bbtopics" btree (topic_vote)
Check constraints:
    "$6" CHECK (topic_moved_id >= 0)
    "$5" CHECK (topic_first_post_id >= 0)
    "$4" CHECK (topic_last_post_id >= 0)
    "$3" CHECK (topic_replies >= 0)
    "$2" CHECK (topic_views >= 0)
    "$1" CHECK (forum_id >= 0)

And the nuke_bbposts structure:

                                Table "public.nuke_bbposts"
     Column      |         Type          |                       Modifiers
-----------------+-----------------------+-------------------------------------------------------
 post_id         | integer               | not null default
nextval('nuke_bbposts_id_seq'::text)
 topic_id        | integer               | not null default 0
 forum_id        | smallint              | not null default 0::smallint
 poster_id       | integer               | not null default 0
 post_time       | integer               | not null default 0
 poster_ip       | character varying(8)  | not null default
''::character varying
 post_username   | character varying(25) |
 enable_bbcode   | smallint              | not null default 1::smallint
 enable_html     | smallint              | not null default 0::smallint
 enable_smilies  | smallint              | not null default 1::smallint
 enable_sig      | smallint              | not null default 1::smallint
 post_edit_time  | integer               |
 post_edit_count | smallint              | not null default 0::smallint
Indexes:
    "nuke_bbposts_pkey" primary key, btree (post_id)
    "forum_id_nuke_bbposts_index" btree (forum_id)
    "post_time_nuke_bbposts_index" btree (post_time)
    "poster_id_nuke_bbposts_index" btree (poster_id)
    "topic_id_nuke_bbposts_index" btree (topic_id)
Check constraints:
    "$3" CHECK (post_edit_count >= 0)
    "$2" CHECK (forum_id >= 0)
    "$1" CHECK (topic_id >= 0)

And the nuke_bbforums:

                                 Table "public.nuke_bbforums"
       Column       |          Type          |
Modifiers
--------------------+------------------------+--------------------------------------------------------------
 forum_id           | smallint               | not null default
nextval('nuke_bbforums_forum_id_seq'::text)
 cat_id             | integer                | not null default 0
 forum_name         | character varying(150) |
 forum_desc         | text                   |
 forum_status       | smallint               | not null default 0::smallint
 forum_order        | integer                | not null default 1
 forum_posts        | integer                | not null default 0
 forum_topics       | integer                | not null default 0
 forum_last_post_id | integer                | not null default 0
 prune_next         | integer                |
 prune_enable       | smallint               | not null default 1::smallint
 auth_view          | smallint               | not null default 0::smallint
 auth_read          | smallint               | not null default 0::smallint
 auth_post          | smallint               | not null default 0::smallint
 auth_reply         | smallint               | not null default 0::smallint
 auth_edit          | smallint               | not null default 0::smallint
 auth_delete        | smallint               | not null default 0::smallint
 auth_sticky        | smallint               | not null default 0::smallint
 auth_announce      | smallint               | not null default 0::smallint
 auth_vote          | smallint               | not null default 0::smallint
 auth_pollcreate    | smallint               | not null default 0::smallint
 auth_attachments   | smallint               | not null default 0::smallint
 auth_news          | smallint               | not null default 2::smallint
Indexes:
    "nuke_bbforums_pkey" primary key, btree (forum_id)
Check constraints:
    "$5" CHECK (forum_last_post_id >= 0)
    "$4" CHECK (forum_topics >= 0)
    "$3" CHECK (forum_posts >= 0)
    "$2" CHECK (forum_order >= 0)
    "$1" CHECK (cat_id >= 0)

And lastly... Here is the query:

SELECT t.topic_id, t.topic_title, t.topic_status, t.topic_replies,
t.topic_time, t.topic_type, t.topic_vote, t.topic_last_post_id,
f.forum_name, f.forum_status, f.forum_id, f.auth_view, f.auth_read,
f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky,
f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments,
COUNT(p2.post_id) AS prev_posts

FROM nuke_bbtopics t, nuke_bbforums f, nuke_bbposts p, nuke_bbposts p2
WHERE p.post_id = 352888
AND t.topic_id = p.topic_id
AND p2.topic_id = p.topic_id
AND p2.post_id <= 352888
AND f.forum_id = t.forum_id

GROUP BY p.post_id, t.topic_id, t.topic_title, t.topic_status,
t.topic_replies, t.topic_time, t.topic_type, t.topic_vote,
t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id,
f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit,
f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate,
f.auth_vote, f.auth_attachments

ORDER BY p.post_id ASC

Sincerely,

Joshua D. Drake





>  I'm wondering how often the
>sort/group comparisons would even look at columns beyond the first
>two ...
>
>            regards, tom lane
>
>


--
Command Prompt, Inc., home of Mammoth PostgreSQL - S/ODBC and S/JDBC
Postgresql support, programming shared hosting and dedicated hosting.
+1-503-667-4564 - jd@commandprompt.com - http://www.commandprompt.com
PostgreSQL Replicator -- production quality replication for PostgreSQL


Attachment
"Joshua D. Drake" <jd@commandprompt.com> writes:
>> Hm.  What is the data like --- in particular, are the topic_ids unique
>> in the data processed by the sort?
>> 
> Yes topic_ids are the primary key. Here is the nuke_bbtopics structure:

Hmmm ... because p.post_id has only a single value allowed by the WHERE
clause, and that in turn determines single t and f rows, the SORT step
is actually seeing thousands of rows that have all the *same* sort key.
Ditto for the grouping step.

I can't offhand see any change between 7.3 and 7.4 that would make 7.4
much worse on this corner case.  Maybe the problem is in the glibc
qsort() routine?  It would be good to try the case in 7.3 and 7.4 on
identical platforms.

I have 7.3 and 7.4 built here on FC3, so if you don't, you could send me
the data off-list.  I'd just need the info going into the sort, ie

create table foo as select
p.post_id, t.topic_id, t.topic_title, t.topic_status, 
t.topic_replies, t.topic_time, t.topic_type, t.topic_vote, 
t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id, 
f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, 
f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, 
f.auth_vote, f.auth_attachments
FROM nuke_bbtopics t, nuke_bbforums f, nuke_bbposts p, nuke_bbposts p2
WHERE p.post_id = 352888
AND t.topic_id = p.topic_id
AND p2.topic_id = p.topic_id
AND p2.post_id <= 352888
AND f.forum_id = t.forum_id;

and send a pg_dump of foo.
        regards, tom lane


"Joshua D. Drake" <jd@commandprompt.com> writes:
> Let me know what you come up with. Thanks for the help.

Hmph.  On my FC3 machine, 7.4 is consistently faster than 7.3 in sorting
and grouping this data --- it's about 710 vs 960 msec.  (This is on a P4
1.8GHz, presumably slower than your machines.)  So there's no
algorithmic change that might be biting us.  It seems we have to look at
the platforms involved.  At this point I can think of two hypotheses
that haven't been eliminated:1. FC1's qsort is much faster than FC3's on this case.2. The 64-bit build has got some
kindof performance problem   that's not generic to 7.4.*.
 
#1 doesn't seem very probable, though it's possible.  I think what you
should do next is build 7.3 on the 64-bit machine and see what performance
it's got.  You might also try non-64-bit builds and see what they do.

Just FYI, you can test the behavior without loading your full database
--- just load the data you sent me and do

explain analyze
select count(*) from foo
group by   post_id,   topic_id,   topic_title,   topic_status,   topic_replies,   topic_time,   topic_type,
topic_vote,  topic_last_post_id,   forum_name,   forum_status,   forum_id,   auth_view,   auth_read,   auth_post,
auth_reply,  auth_edit,   auth_delete,   auth_sticky,   auth_announce,   auth_pollcreate,   auth_vote,
auth_attachments
;

On 7.4 and up you may have to set enable_hashagg = off to force a
Sort/GroupAggregate plan instead of HashAggregate.
        regards, tom lane


Re: Very strange query difference between 7.3.6 and 7.4.6

From
"Joshua D. Drake"
Date:
Tom Lane wrote:

>"Joshua D. Drake" <jd@commandprompt.com> writes:
>
>
>>Let me know what you come up with. Thanks for the help.
>>
>>
>
>Hmph.  On my FC3 machine, 7.4 is consistently faster than 7.3 in sorting
>and grouping this data --- it's about 710 vs 960 msec.  (This is on a P4
>1.8GHz, presumably slower than your machines.)  So there's no
>algorithmic change that might be biting us.  It seems we have to look at
>the platforms involved.  At this point I can think of two hypotheses
>that haven't been eliminated:
>    1. FC1's qsort is much faster than FC3's on this case.
>    2. The 64-bit build has got some kind of performance problem
>       that's not generic to 7.4.*.
>#1 doesn't seem very probable, though it's possible.  I think what you
>should do next is build 7.3 on the 64-bit machine and see what performance
>it's got.  You might also try non-64-bit builds and see what they do.
>
>
>
O.k. thanks for the help. I will take a look and let you know the results.

Sincerely,

Joshua D. Drake


>Just FYI, you can test the behavior without loading your full database
>--- just load the data you sent me and do
>
>explain analyze
>select count(*) from foo
>group by
>    post_id,
>    topic_id,
>    topic_title,
>    topic_status,
>    topic_replies,
>    topic_time,
>    topic_type,
>    topic_vote,
>    topic_last_post_id,
>    forum_name,
>    forum_status,
>    forum_id,
>    auth_view,
>    auth_read,
>    auth_post,
>    auth_reply,
>    auth_edit,
>    auth_delete,
>    auth_sticky,
>    auth_announce,
>    auth_pollcreate,
>    auth_vote,
>    auth_attachments
>;
>
>On 7.4 and up you may have to set enable_hashagg = off to force a
>Sort/GroupAggregate plan instead of HashAggregate.
>
>            regards, tom lane
>
>


--
Command Prompt, Inc., home of Mammoth PostgreSQL - S/ODBC and S/JDBC
Postgresql support, programming shared hosting and dedicated hosting.
+1-503-667-4564 - jd@commandprompt.com - http://www.commandprompt.com
PostgreSQL Replicator -- production quality replication for PostgreSQL


Attachment

Re: Very strange query difference between 7.3.6 and 7.4.6

From
"Joshua D. Drake"
Date:
>>
>> On 7.4 and up you may have to set enable_hashagg = off to force a
>> Sort/GroupAggregate plan instead of HashAggregate.
>
O.k. on FC2 7.4.6 64bit I get:


-------------------------------------------------------------------------------------------------------------
 HashAggregate  (cost=80.00..82.50 rows=1000 width=404) (actual
time=235.064..235.068 rows=1 loops=1)
   ->  Seq Scan on foo  (cost=0.00..20.00 rows=1000 width=404) (actual
time=0.024..10.409 rows=8845 loops=1)
 Total runtime: 236.703 ms
(3 rows)


With enable_hashagg on... With it enable_hashagg off I get:

GroupAggregate  (cost=69.83..134.83 rows=1000 width=404) (actual
time=688.150..688.151 rows=1 loops=1)
   ->  Sort  (cost=69.83..72.33 rows=1000 width=404) (actual
time=543.251..554.363 rows=8845 loops=1)
         Sort Key: post_id, topic_id, topic_title, topic_status,
topic_replies, topic_time, topic_type, topic_vote, topic_last_post_id,
forum_name, forum_status, forum_id, auth_view, auth_read, auth_post,
auth_reply, auth_edit, auth_delete, auth_sticky, auth_announce,
auth_pollcreate, auth_vote, auth_attachments
         ->  Seq Scan on foo  (cost=0.00..20.00 rows=1000 width=404)
(actual time=0.008..7.635 rows=8845 loops=1)
 Total runtime: 690.881 ms
(5 rows)

On the FC3 64bit, I am seeing similar results:

With enable_hashagg on:

        QUERY PLAN
---------------------------------------------------------------------------------------------------------------
 HashAggregate  (cost=1041.15..1041.15 rows=1 width=333) (actual
time=260.543..260.544 rows=1 loops=1)
   ->  Seq Scan on foo  (cost=0.00..510.45 rows=8845 width=333) (actual
time=11.638..68.744 rows=8845 loops=1)
 Total runtime: 261.195 ms
(3 rows)


With enable_hashagg off:

QUERY
PLAN


--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 GroupAggregate  (cost=1090.27..1643.08 rows=1 width=333) (actual
time=1075.690..1075.690 rows=1 loops=1)
   ->  Sort  (cost=1090.27..1112.38 rows=8845 width=333) (actual
time=943.242..946.261 rows=8845 loops=1)
         Sort Key: post_id, topic_id, topic_title, topic_status,
topic_replies, topic_time, topic_type, topic_vote, topic_last_post_id,
forum_name, forum_status, forum_id, auth_view, auth_read, auth_post,
auth_reply, auth_edit, auth_delete, auth_sticky, auth_announce,
auth_pollcreate, auth_vote, auth_attachments
         ->  Seq Scan on foo  (cost=0.00..510.45 rows=8845 width=333)
(actual time=0.044..15.936 rows=8845 loops=1)
 Total runtime: 1084.778 ms
(5 rows)


Odd that FC3 is so much slower, the FC3 machine puts the FC2 machine
to shame for IO.

However, The source query doesn't choose a hashagg on the FC3 machine,
which your
test case does. I am having problems getting 7.3.9 to start on the FC3
machine.
Very weird, I get this error:

IpcSemaphoreCreate: semget(key=5435117, num=17, 03600) failed: No space
left on device

Of which I am familiar with and know how to fix. However, I get the
error even with
default settings with the other instance of PostgreSQL (the 7.4.6)
shutdown. So I am
at a loss there.

O.k. I got 7.3.9 to operate as expected on FC2 (64bit) and these are my
results:

enable_hashagg on:

 HashAggregate  (cost=80.00..82.50 rows=1000 width=404) (actual
time=209.746..209.750 rows=1 loops=1)
   ->  Seq Scan on foo  (cost=0.00..20.00 rows=1000 width=404) (actual
time=0.018..10.218 rows=8845 loops=1)
 Total runtime: 210.580 ms
(3 rows)

enable_hashagg off:

GroupAggregate  (cost=69.83..134.83 rows=1000 width=404) (actual
time=661.197..661.198 rows=1 loops=1)
   ->  Sort  (cost=69.83..72.33 rows=1000 width=404) (actual
time=517.531..528.360 rows=8845 loops=1)
         Sort Key: post_id, topic_id, topic_title, topic_status,
topic_replies, topic_time, topic_type, topic_vote, topic_last_post_id,
forum_name, forum_status, forum_id, auth_view, auth_read, auth_post,
auth_reply, auth_edit, auth_delete, auth_sticky, auth_announce,
auth_pollcreate, auth_vote, auth_attachments
         ->  Seq Scan on foo  (cost=0.00..20.00 rows=1000 width=404)
(actual time=0.008..7.728 rows=8845 loops=1)
 Total runtime: 663.903 ms
(5 rows)


So at this point, from what I can tell FC3 64bit 7.4.6 is slower by an
at least 400ms (with the wrong plan) and is choosing the wrong plan. Yet
FC2 doesn't have these issues. Hmmm....

FC2 has glibc 2.3.3 and gcc 3.3.3
FC3 has glibc 2.3.4 and gcc 3.4.2

What next?

Sincerely,

Joshua D. Drake








>>
>>             regards, tom lane
>>
>>
>
>
>
>------------------------------------------------------------------------
>
>
>---------------------------(end of broadcast)---------------------------
>TIP 2: you can get off all lists at once with the unregister command
>    (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
>


--
Command Prompt, Inc., home of Mammoth PostgreSQL - S/ODBC and S/JDBC
Postgresql support, programming shared hosting and dedicated hosting.
+1-503-667-4564 - jd@commandprompt.com - http://www.commandprompt.com
PostgreSQL Replicator -- production quality replication for PostgreSQL


Attachment

Re: Very strange query difference between 7.3.6 and 7.4.6

From
Tom Lane
Date:
"Joshua D. Drake" <jd@commandprompt.com> writes:
> O.k. I got 7.3.9 to operate as expected on FC2 (64bit) and these are my 
> results:

> enable_hashagg on:

>  HashAggregate  (cost=80.00..82.50 rows=1000 width=404) (actual 
> time=209.746..209.750 rows=1 loops=1)

You got confused somewhere along the line, because 7.3 doesn't have
hash aggregation ...
        regards, tom lane


Re: Very strange query difference between 7.3.6 and 7.4.6

From
"Joshua D. Drake"
Date:
Tom Lane wrote:

>"Joshua D. Drake" <jd@commandprompt.com> writes:
>
>
>>O.k. I got 7.3.9 to operate as expected on FC2 (64bit) and these are my
>>results:
>>
>>
>
>
>
>>enable_hashagg on:
>>
>>
>
>
>
>> HashAggregate  (cost=80.00..82.50 rows=1000 width=404) (actual
>>time=209.746..209.750 rows=1 loops=1)
>>
>>
>
>You got confused somewhere along the line, because 7.3 doesn't have
>hash aggregation ...
>
>
DOH! You are correct. Heh... Anyway here is the real 7.3.9
on FC2 64bit plan:
RY
PLAN
                                   


--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 Aggregate  (cost=69.83..132.33 rows=100 width=404) (actual
time=771.96..771.96 rows=1 loops=1)
   ->  Group  (cost=69.83..129.83 rows=1000 width=404) (actual
time=579.98..767.54 rows=8845 loops=1)
         ->  Sort  (cost=69.83..72.33 rows=1000 width=404) (actual
time=579.96..590.00 rows=8845 loops=1)
               Sort Key: post_id, topic_id, topic_title, topic_status,
topic_replies, topic_time, topic_type, topic_vote, topic_last_post_id,
forum_name, forum_status, forum_id, auth_view, auth_read, auth_post,
auth_reply, auth_edit, auth_delete, auth_sticky, auth_announce,
auth_pollcreate, auth_vote, auth_attachments
               ->  Seq Scan on foo  (cost=0.00..20.00 rows=1000
width=404) (actual time=0.05..107.62 rows=8845 loops=1)
 Total runtime: 774.57 msec
(6 rows)




>            regards, tom lane
>
>---------------------------(end of broadcast)---------------------------
>TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
>
>


--
Command Prompt, Inc., home of Mammoth PostgreSQL - S/ODBC and S/JDBC
Postgresql support, programming shared hosting and dedicated hosting.
+1-503-667-4564 - jd@commandprompt.com - http://www.commandprompt.com
PostgreSQL Replicator -- production quality replication for PostgreSQL


Attachment

Re: Very strange query difference between 7.3.6 and 7.4.6

From
"Joshua D. Drake"
Date:
Hello,

O.k. here is a great one for you. Here are some further comparisons:

8.0.1 FC3 64bit:

foo=# explain analyze SELECT t.topic_id, t.topic_title, t.topic_status,
t.topic_replies, t.topic_time, t.topic_type, t.topic_vote,
t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id,
f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit,
f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate,
f.auth_vote, f.auth_attachments, COUNT(p.post_id) AS prev_posts
foo-#                 FROM nuke_bbtopics t, nuke_bbforums f,
nuke_bbposts p
foo-#                 WHERE p.post_id = 624854 AND t.topic_id =
p.topic_id
foo-#                 AND p.topic_id = p.topic_id AND p.post_id <=
624854
foo-#                         AND f.forum_id = t.forum_id
foo-#                         GROUP BY p.post_id, t.topic_id,
t.topic_title, t.topic_status, t.topic_replies, t.topic_time,
t.topic_type, t.topic_vote, t.topic_last_post_id, f.forum_name,
f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post,
f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky,
f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments
ORDER BY p.post_id ASC;

QUERY PLAN

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
GroupAggregate (cost=13.44..13.51 rows=1 width=404) (actual time=0.233..0.234 rows=1 loops=1)  ->  Sort
(cost=13.44..13.45rows=1 width=404) (actual
 
time=0.196..0.196 rows=1 loops=1)        Sort Key: p.post_id, t.topic_id, t.topic_title, t.topic_status,
t.topic_replies, t.topic_time, t.topic_type, t.topic_vote,
t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id,
f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit,
f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate,
f.auth_vote, f.auth_attachments        ->  Nested Loop  (cost=0.00..13.43 rows=1 width=404) (actual
time=0.098..0.129 rows=1 loops=1)              Join Filter: ("inner".forum_id = "outer".forum_id)              ->
NestedLoop  (cost=0.00..12.03 rows=1 width=287)
 
(actual time=0.071..0.075 rows=1 loops=1)                    ->  Index Scan using nuke_bbposts_pkey on
nuke_bbposts p  (cost=0.00..6.02 rows=1 width=8) (actual
time=0.045..0.046 rows=1 loops=1)                          Index Cond: ((post_id = 624854) AND (post_id
<= 624854))                          Filter: (topic_id = topic_id)                    ->  Index Scan using
nuke_bbtopics_pkeyon
 
nuke_bbtopics t  (cost=0.00..6.00 rows=1 width=283) (actual
time=0.012..0.014 rows=1 loops=1)                          Index Cond: (t.topic_id = "outer".topic_id)              ->
SeqScan on nuke_bbforums f  (cost=0.00..1.18 rows=18
 
width=119) (actual time=0.004..0.018 rows=18 loops=1)Total runtime: 0.530 ms
(13 rows)

7.4.6 FC3 64bit:


rp_nuke=# explain analyze SELECT t.topic_id, t.topic_title,
t.topic_status, t.topic_replies, t.topic_time, t.topic_type,
t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status,
f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply,
f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce,
f.auth_pollcreate, f.auth_vote, f.auth_attachments, COUNT(p.post_id) AS
prev_posts
rp_nuke-#                 FROM nuke_bbtopics t, nuke_bbforums f,
nuke_bbposts p
rp_nuke-#                 WHERE p.post_id = 624854 AND t.topic_id =
p.topic_id
rp_nuke-#                 AND p.topic_id = p.topic_id AND p.post_id <=
624854
rp_nuke-#                         AND f.forum_id = t.forum_id
rp_nuke-#                         GROUP BY p.post_id, t.topic_id,
t.topic_title, t.topic_status, t.topic_replies, t.topic_time,
t.topic_type, t.topic_vote, t.topic_last_post_id, f.forum_name,
f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post,
f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky,
f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments
ORDER BY p.post_id ASC
rp_nuke-#
rp_nuke-# ;

QUERY PLAN

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
GroupAggregate (cost=10.18..10.25 rows=1 width=324) (actual time=0.502..0.502 rows=1 loops=1)  ->  Sort
(cost=10.18..10.18rows=1 width=324) (actual
 
time=0.460..0.461 rows=1 loops=1)        Sort Key: p.post_id, t.topic_id, t.topic_title, t.topic_status,
t.topic_replies, t.topic_time, t.topic_type, t.topic_vote,
t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id,
f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit,
f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate,
f.auth_vote, f.auth_attachments        ->  Nested Loop  (cost=0.00..10.17 rows=1 width=324) (actual
time=0.190..0.206 rows=1 loops=1)              ->  Nested Loop  (cost=0.00..6.69 rows=1 width=287)
(actual time=0.143..0.146 rows=1 loops=1)                    ->  Index Scan using nuke_bbposts_pkey on
nuke_bbposts p  (cost=0.00..3.21 rows=1 width=8) (actual
time=0.094..0.095 rows=1 loops=1)                          Index Cond: ((post_id = 624854) AND (post_id
<= 624854))                          Filter: (topic_id = topic_id)                    ->  Index Scan using
nuke_bbtopics_pkeyon
 
nuke_bbtopics t  (cost=0.00..3.46 rows=1 width=283) (actual
time=0.029..0.030 rows=1 loops=1)                          Index Cond: (t.topic_id = "outer".topic_id)              ->
IndexScan using nuke_bbforums_pkey on nuke_bbforums
 
f  (cost=0.00..3.47 rows=1 width=39) (actual time=0.030..0.041 rows=1
loops=1)                    Index Cond: (f.forum_id = "outer".forum_id)Total runtime: 1.126 ms
(13 rows)

Sincerely,

Joshua D. Drake



On Sun, 2005-03-20 at 20:21 -0800, Joshua D. Drake wrote:
> Tom Lane wrote:
> 
> >"Joshua D. Drake" <jd@commandprompt.com> writes:
> >  
> >
> >>O.k. I got 7.3.9 to operate as expected on FC2 (64bit) and these are my 
> >>results:
> >>    
> >>
> >
> >  
> >
> >>enable_hashagg on:
> >>    
> >>
> >
> >  
> >
> >> HashAggregate  (cost=80.00..82.50 rows=1000 width=404) (actual 
> >>time=209.746..209.750 rows=1 loops=1)
> >>    
> >>
> >
> >You got confused somewhere along the line, because 7.3 doesn't have
> >hash aggregation ...
> >  
> >
> DOH! You are correct. Heh... Anyway here is the real 7.3.9
> on FC2 64bit plan:
> RY 
> PLAN
                                    
 
> 
>
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>  Aggregate  (cost=69.83..132.33 rows=100 width=404) (actual 
> time=771.96..771.96 rows=1 loops=1)
>    ->  Group  (cost=69.83..129.83 rows=1000 width=404) (actual 
> time=579.98..767.54 rows=8845 loops=1)
>          ->  Sort  (cost=69.83..72.33 rows=1000 width=404) (actual 
> time=579.96..590.00 rows=8845 loops=1)
>                Sort Key: post_id, topic_id, topic_title, topic_status, 
> topic_replies, topic_time, topic_type, topic_vote, topic_last_post_id, 
> forum_name, forum_status, forum_id, auth_view, auth_read, auth_post, 
> auth_reply, auth_edit, auth_delete, auth_sticky, auth_announce, 
> auth_pollcreate, auth_vote, auth_attachments
>                ->  Seq Scan on foo  (cost=0.00..20.00 rows=1000 
> width=404) (actual time=0.05..107.62 rows=8845 loops=1)
>  Total runtime: 774.57 msec
> (6 rows)
> 
> 
> 
> 
> >            regards, tom lane
> >
> >---------------------------(end of broadcast)---------------------------
> >TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
> >  
> >
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 7: don't forget to increase your free space map settings
-- 
Command Prompt, Inc., Your PostgreSQL solutions company. 503-667-4564
Custom programming, 24x7 support, managed services, and hosting
Open Source Authors: plPHP, pgManage, Co-Authors: plPerlNG
Reliable replication, Mammoth Replicator - http://www.commandprompt.com/



Re: Very strange query difference between 7.3.6 and 7.4.6

From
"Joshua D. Drake"
Date:
Hello,

O.k. this is the wrong query, but it still shows the odd slowness. I am
going to test the full dataset on FC2 and see what happens.

J

On Mon, 2005-03-21 at 10:58 -0800, Joshua D. Drake wrote:
> Hello,
> 
> O.k. here is a great one for you. Here are some further comparisons:
> 
> 8.0.1 FC3 64bit:
> 
> foo=# explain analyze SELECT t.topic_id, t.topic_title, t.topic_status,
> t.topic_replies, t.topic_time, t.topic_type, t.topic_vote,
> t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id,
> f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit,
> f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate,
> f.auth_vote, f.auth_attachments, COUNT(p.post_id) AS prev_posts
> foo-#                 FROM nuke_bbtopics t, nuke_bbforums f,
> nuke_bbposts p
> foo-#                 WHERE p.post_id = 624854 AND t.topic_id =
> p.topic_id
> foo-#                 AND p.topic_id = p.topic_id AND p.post_id <=
> 624854
> foo-#                         AND f.forum_id = t.forum_id
> foo-#                         GROUP BY p.post_id, t.topic_id,
> t.topic_title, t.topic_status, t.topic_replies, t.topic_time,
> t.topic_type, t.topic_vote, t.topic_last_post_id, f.forum_name,
> f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post,
> f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky,
> f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments
> ORDER BY p.post_id ASC;
> 
> QUERY PLAN
>
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
GroupAggregate (cost=13.44..13.51 rows=1 width=404) (actual time=0.233..0.234 rows=1 loops=1)
 
>    ->  Sort  (cost=13.44..13.45 rows=1 width=404) (actual
> time=0.196..0.196 rows=1 loops=1)
>          Sort Key: p.post_id, t.topic_id, t.topic_title, t.topic_status,
> t.topic_replies, t.topic_time, t.topic_type, t.topic_vote,
> t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id,
> f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit,
> f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate,
> f.auth_vote, f.auth_attachments
>          ->  Nested Loop  (cost=0.00..13.43 rows=1 width=404) (actual
> time=0.098..0.129 rows=1 loops=1)
>                Join Filter: ("inner".forum_id = "outer".forum_id)
>                ->  Nested Loop  (cost=0.00..12.03 rows=1 width=287)
> (actual time=0.071..0.075 rows=1 loops=1)
>                      ->  Index Scan using nuke_bbposts_pkey on
> nuke_bbposts p  (cost=0.00..6.02 rows=1 width=8) (actual
> time=0.045..0.046 rows=1 loops=1)
>                            Index Cond: ((post_id = 624854) AND (post_id
> <= 624854))
>                            Filter: (topic_id = topic_id)
>                      ->  Index Scan using nuke_bbtopics_pkey on
> nuke_bbtopics t  (cost=0.00..6.00 rows=1 width=283) (actual
> time=0.012..0.014 rows=1 loops=1)
>                            Index Cond: (t.topic_id = "outer".topic_id)
>                ->  Seq Scan on nuke_bbforums f  (cost=0.00..1.18 rows=18
> width=119) (actual time=0.004..0.018 rows=18 loops=1)
>  Total runtime: 0.530 ms
> (13 rows)
> 
> 7.4.6 FC3 64bit:
> 
> 
> rp_nuke=# explain analyze SELECT t.topic_id, t.topic_title,
> t.topic_status, t.topic_replies, t.topic_time, t.topic_type,
> t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status,
> f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply,
> f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce,
> f.auth_pollcreate, f.auth_vote, f.auth_attachments, COUNT(p.post_id) AS
> prev_posts
> rp_nuke-#                 FROM nuke_bbtopics t, nuke_bbforums f,
> nuke_bbposts p
> rp_nuke-#                 WHERE p.post_id = 624854 AND t.topic_id =
> p.topic_id
> rp_nuke-#                 AND p.topic_id = p.topic_id AND p.post_id <=
> 624854
> rp_nuke-#                         AND f.forum_id = t.forum_id
> rp_nuke-#                         GROUP BY p.post_id, t.topic_id,
> t.topic_title, t.topic_status, t.topic_replies, t.topic_time,
> t.topic_type, t.topic_vote, t.topic_last_post_id, f.forum_name,
> f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post,
> f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky,
> f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments
> ORDER BY p.post_id ASC
> rp_nuke-#
> rp_nuke-# ;
> 
> QUERY PLAN
>
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
GroupAggregate (cost=10.18..10.25 rows=1 width=324) (actual time=0.502..0.502 rows=1 loops=1)
 
>    ->  Sort  (cost=10.18..10.18 rows=1 width=324) (actual
> time=0.460..0.461 rows=1 loops=1)
>          Sort Key: p.post_id, t.topic_id, t.topic_title, t.topic_status,
> t.topic_replies, t.topic_time, t.topic_type, t.topic_vote,
> t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id,
> f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit,
> f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate,
> f.auth_vote, f.auth_attachments
>          ->  Nested Loop  (cost=0.00..10.17 rows=1 width=324) (actual
> time=0.190..0.206 rows=1 loops=1)
>                ->  Nested Loop  (cost=0.00..6.69 rows=1 width=287)
> (actual time=0.143..0.146 rows=1 loops=1)
>                      ->  Index Scan using nuke_bbposts_pkey on
> nuke_bbposts p  (cost=0.00..3.21 rows=1 width=8) (actual
> time=0.094..0.095 rows=1 loops=1)
>                            Index Cond: ((post_id = 624854) AND (post_id
> <= 624854))
>                            Filter: (topic_id = topic_id)
>                      ->  Index Scan using nuke_bbtopics_pkey on
> nuke_bbtopics t  (cost=0.00..3.46 rows=1 width=283) (actual
> time=0.029..0.030 rows=1 loops=1)
>                            Index Cond: (t.topic_id = "outer".topic_id)
>                ->  Index Scan using nuke_bbforums_pkey on nuke_bbforums
> f  (cost=0.00..3.47 rows=1 width=39) (actual time=0.030..0.041 rows=1
> loops=1)
>                      Index Cond: (f.forum_id = "outer".forum_id)
>  Total runtime: 1.126 ms
> (13 rows)
> 
> Sincerely,
> 
> Joshua D. Drake
> 
> 
> 
> On Sun, 2005-03-20 at 20:21 -0800, Joshua D. Drake wrote:
> > Tom Lane wrote:
> > 
> > >"Joshua D. Drake" <jd@commandprompt.com> writes:
> > >  
> > >
> > >>O.k. I got 7.3.9 to operate as expected on FC2 (64bit) and these are my 
> > >>results:
> > >>    
> > >>
> > >
> > >  
> > >
> > >>enable_hashagg on:
> > >>    
> > >>
> > >
> > >  
> > >
> > >> HashAggregate  (cost=80.00..82.50 rows=1000 width=404) (actual 
> > >>time=209.746..209.750 rows=1 loops=1)
> > >>    
> > >>
> > >
> > >You got confused somewhere along the line, because 7.3 doesn't have
> > >hash aggregation ...
> > >  
> > >
> > DOH! You are correct. Heh... Anyway here is the real 7.3.9
> > on FC2 64bit plan:
> > RY 
> > PLAN
                                      
 
> > 
> >
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> >  Aggregate  (cost=69.83..132.33 rows=100 width=404) (actual 
> > time=771.96..771.96 rows=1 loops=1)
> >    ->  Group  (cost=69.83..129.83 rows=1000 width=404) (actual 
> > time=579.98..767.54 rows=8845 loops=1)
> >          ->  Sort  (cost=69.83..72.33 rows=1000 width=404) (actual
> > time=579.96..590.00 rows=8845 loops=1)
> >                Sort Key: post_id, topic_id, topic_title, topic_status, 
> > topic_replies, topic_time, topic_type, topic_vote, topic_last_post_id, 
> > forum_name, forum_status, forum_id, auth_view, auth_read, auth_post, 
> > auth_reply, auth_edit, auth_delete, auth_sticky, auth_announce, 
> > auth_pollcreate, auth_vote, auth_attachments
> >                ->  Seq Scan on foo  (cost=0.00..20.00 rows=1000 
> > width=404) (actual time=0.05..107.62 rows=8845 loops=1)
> >  Total runtime: 774.57 msec
> > (6 rows)
> > 
> > 
> > 
> > 
> > >            regards, tom lane
> > >
> > >---------------------------(end of broadcast)---------------------------
> > >TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
> > >  
> > >
> > 
> > 
> > ---------------------------(end of broadcast)---------------------------
> > TIP 7: don't forget to increase your free space map settings
-- 
Command Prompt, Inc., Your PostgreSQL solutions company. 503-667-4564
Custom programming, 24x7 support, managed services, and hosting
Open Source Authors: plPHP, pgManage, Co-Authors: plPerlNG
Reliable replication, Mammoth Replicator - http://www.commandprompt.com/