From: | Ron Snyder <snyder(at)roguewave(dot)com> |
---|---|
To: | "'pgsql-general(at)postgresql(dot)org'" <pgsql-general(at)postgresql(dot)org> |
Subject: | Unexplainable slow down... |
Date: | 2002-03-13 21:29:11 |
Message-ID: | F888C30C3021D411B9DA00B0D0209BE8026E2DA2@cvo-exchange.cvo.roguewave.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
We've got this bizarre problem that we're unable to explain and solve, and I
need some pointers. All pointers to documentation or clues will be
gratefully received.
-ron
Here's the timing information for the query that we first noticed the
problem on:
$ time psql quickview pgsql72 -c "select * from builds where
product='sourcepro_db' and state != 'N' and state != 'W' and finished >=
'03/12/2002' and finished < '03/13/2002' order by
machine,os,compiler,threadlib,debug,exportlevel,stdlibtype,linktype,state,id
,submitted,started,finished,user2,user1;" > test.out
real 1m52.781s
user 0m0.080s
sys 0m0.040s
######We removed the "ORDER BY" stuff, and limited the number of columns we
were interested in, and still see results similar:
$ time psql quickview pgsql72 -c "select finished from builds where
product='sourcepro_db' and state != 'N' and state != 'W' and finished >=
'03/12/2002' and finished < '03/13/2002';" > test.out
real 1m56.346s
user 0m0.010s
sys 0m0.000s
######We played around with LIMIT, and see the following type of thing (Note
the HUGE time increase when going from "limit 14" to "limit 15"):
$ time psql quickview pgsql72 -c "select * from builds where
product='sourcepro_db' and state != 'N' and state != 'W' and finished >=
'03/12/2002' and finished < '03/13/2002' limit 14;" > test.out
real 0m1.884s
user 0m0.000s
sys 0m0.010s
$ ls -al test.out
-rw-r--r-- 1 snyder sysadmin 8831 Mar 13 12:42 test.out
$ time psql quickview pgsql72 -c "select * from builds where
product='sourcepro_db' and state != 'N' and state != 'W' and finished >=
'03/12/2002' and finished < '03/13/2002' limit 15;" > test.out
real 0m48.913s
user 0m0.010s
sys 0m0.000s
$ ls -al test.out
-rw-r--r-- 1 snyder sysadmin 9383 Mar 13 12:43 test.out
Here's an "explain":
# explain select * from builds where product='sourcepro_db' and state != 'N'
and state != 'W' and finished >= '03/12/2002' and finished < '03/13/2002'
limit 15;
NOTICE: QUERY PLAN:
Limit (cost=0.00..833.71 rows=15 width=426)
-> Seq Scan on builds (cost=0.00..123873.38 rows=2229 width=426)
EXPLAIN
Here's an explain without a "WHERE" clause, so it looks like the index on :
# explain select * from builds;
NOTICE: QUERY PLAN:
Seq Scan on builds (cost=0.00..121841.50 rows=162550 width=426)
EXPLAIN
Here's what the table looks like:
$ psql quickview pgsql72 -c "\d builds"
Table "builds"
Attribute | Type | Modifier
-------------------+--------------------------+----------
id | integer | not null
visible | boolean |
state | character(1) |
evaluated | boolean |
product | character varying(30) |
compiler | character varying(30) |
os | character varying(30) |
stdlibtype | character varying(30) |
linktype | character varying(30) |
threadlib | character varying(30) |
exportlevel | character varying(30) |
usermode | character varying(30) |
postbuildclean | character varying(30) |
prebuildclean | character varying(30) |
submitted | timestamp with time zone |
started | timestamp with time zone |
finished | timestamp with time zone |
machine | character varying(100) |
errors | integer |
warnings | integer |
testsattempted | integer |
testspassed | integer |
testsfailed | integer |
examplesattempted | integer |
examplespassed | integer |
examplesfailed | integer |
ping | timestamp with time zone |
start_count | integer |
user1 | character varying(50) |
user2 | character varying(50) |
user3 | character varying(50) |
user4 | character varying(50) |
user5 | character varying(50) |
user6 | character varying(50) |
debug | character varying(30) |
Indices: builds_compiler,
builds_machine,
builds_os,
builds_pkey,
builds_product,
builds_product_os_compiler,
builds_product_state_finished,
builds_product_state_submitted,
builds_started,
builds_vis_compiler_fin_state,
builds_vis_compiler_submitted,
builds_vis_machine_fin_state,
builds_vis_machine_submitted,
builds_vis_os_fin_state,
builds_vis_os_submitted,
builds_vis_prod_fin_state,
builds_visible_product,
builds_visible_product_submitte
From | Date | Subject | |
---|---|---|---|
Next Message | Steve Lane | 2002-03-13 21:46:27 | Re: Last Insert |
Previous Message | Brian Knox | 2002-03-13 21:28:00 | Strange Postgresql Indexing Behavior |