From: | "Sabin Coanda" <coanda(at)hotpop(dot)com> |
---|---|
To: | pgsql-performance(at)postgresql(dot)org |
Subject: | count is ten times faster |
Date: | 2010-04-13 12:32:57 |
Message-ID: | hq1ocv$2mea$1@news.hub.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
Hi there,
I have a simple aggregate query: SELECT count("PK_ID") AS "b1" FROM "tbA"
WHERE "PK_ID" > "f1"( 'c1' ), which has the following execution plan:
"Aggregate (cost=2156915.42..2156915.43 rows=1 width=4)"
" -> Seq Scan on "tbA" (cost=0.00..2137634.36 rows=7712423 width=4)"
" Filter: ("PK_ID" > "f1"('c1'::character varying))"
I tried to get the same result with the following query:
SELECT (
SELECT count("PK_ID") AS "b1" FROM "tbA" ) -
(
SELECT count("PK_ID") AS "b1"
FROM "tbA"
WHERE "PK_ID" <= "f1"( 'c1' )
)
with the execution plan:
"Result (cost=248952.95..248952.96 rows=1 width=0)"
" InitPlan"
" -> Aggregate (cost=184772.11..184772.12 rows=1 width=4)"
" -> Seq Scan on "tbA" (cost=0.00..165243.49 rows=7811449
width=4)"
" -> Aggregate (cost=64180.81..64180.82 rows=1 width=4)"
" -> Index Scan using "tbA_pkey" on "tbA" (cost=0.25..63933.24
rows=99026 width=4)"
" Index Cond: ("PK_ID" <= "f1"('c1'::character varying))"
How do you explain the cost is about ten times lower in the 2nd query than
the first ?
TIA,
Sabin
From | Date | Subject | |
---|---|---|---|
Next Message | Chris | 2010-04-13 15:55:18 | stats collector suddenly causing lots of IO |
Previous Message | norn | 2010-04-13 06:07:19 | Re: significant slow down with various LIMIT |