Unexplainable slow down... - Mailing list pgsql-general
| From | Ron Snyder | 
|---|---|
| Subject | Unexplainable slow down... | 
| Date | |
| Msg-id | F888C30C3021D411B9DA00B0D0209BE8026E2DA2@cvo-exchange.cvo.roguewave.com Whole thread Raw | 
| Responses | Re: Unexplainable slow down... | 
| List | 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
		
	pgsql-general by date: