Unexplainable slow down...

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

Responses

Browse pgsql-general by date

  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