From: | Brian Cox <brian(dot)cox(at)ca(dot)com> |
---|---|
To: | pgsql-performance(at)postgresql(dot)org |
Subject: | limit + order by is slow if no rows in result set |
Date: | 2007-02-12 21:36:45 |
Message-ID: | 45D0DDED.1070400@ca.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
There are 1.9M rows in ts_defects and indexes on b.ts_id (primary key)
d.ts_biz_event_id and d.ts_occur_date. Both queries below return 0
rows. The 1st runs fast and the 2nd > 400x slower. The 2nd query
differs from the 1st only by the addition of "limit 1".
Why the big difference in performance?
Thanks,
Brian
[bcox(at)athena jsp]$ time PGPASSWORD=**** psql -U admin -d cemdb -h
192.168.1.30 -c 'select * from ts_defects d join ts_biz_events b on
b.ts_id = d.ts_biz_event_id where b.ts_status=3 order by d.ts_occur_date
desc;'
(column list deleted)
-------+--------------+--------------+---------------+---------------------------+----------------+----------------+------------+------------------------+------------------+-----------------+---------------+------------------+---------------+-----------------+-------------------+---------------------+---------------------+---------------------+--------------------+----------------+--------------------+----------------------+--------------------+----------------------+-----------------------+----------------+----------------------+---------------+-----------------+------------------+--------------+----------------+-------+--------------+---------------+---------------------------+------------------+---------+--------------------+---------------+-----------------+------------------+---------------+----------------------+---------------------+--------------------+-----------+---------------------+----------+---------------+--------------+------------------+-------------+--------
-----+--------------+--------------+----------------
(0 rows)
real 0m0.022s
user 0m0.003s
sys 0m0.003s
[bcox(at)athena jsp]$ time PGPASSWORD=**** psql -U admin -d cemdb -h
192.168.1.30 -c 'select * from ts_defects d join ts_biz_events b on
b.ts_id = d.ts_biz_event_id where b.ts_status=3 order by d.ts_occur_date
desc limit 1;'
(column list deleted)
-------+--------------+--------------+---------------+---------------------------+----------------+----------------+------------+------------------------+------------------+-----------------+---------------+------------------+---------------+-----------------+-------------------+---------------------+---------------------+---------------------+--------------------+----------------+--------------------+----------------------+--------------------+----------------------+-----------------------+----------------+----------------------+---------------+-----------------+------------------+--------------+----------------+-------+--------------+---------------+---------------------------+------------------+---------+--------------------+---------------+-----------------+------------------+---------------+----------------------+---------------------+--------------------+-----------+---------------------+----------+---------------+--------------+------------------+-------------+--------
-----+--------------+--------------+----------------
(0 rows)
real 0m9.410s
user 0m0.005s
sys 0m0.002s
From | Date | Subject | |
---|---|---|---|
Next Message | Heikki Linnakangas | 2007-02-12 23:26:04 | Re: limit + order by is slow if no rows in result set |
Previous Message | Mark Stosberg | 2007-02-12 19:48:58 | Re: cube operations slower than geo_distance() on production server |