8.1 iss

Поиск
Список
Период
Сортировка
От PostgreSQL
Тема 8.1 iss
Дата
Msg-id dkko49$1v06$1@news.hub.org
обсуждение исходный текст
Ответы Re: 8.1 iss  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: 8.1 iss  (Greg Stark <gsstark@mit.edu>)
Re: 8.1 iss  (Dennis Bjorklund <db@zigo.dhs.org>)
Список pgsql-performance
SELECT v_barcode, count(v_barcode) FROM lead GROUP BY v_barcode HAVING
count(*) > 1;

This is a pretty good example of the place where 8.1 seems to be quite
broken.  I understand that this query will want to do a full table scan
(even through v_barcode is indexed).  And the table is largish, at 34
million rows.  In the 8.0 world, this took around 4 minutes.  With 8.1beta3,
this has run for 30 minutes (as I began to write this) and is still going
strong.

And it behaves differently than I'd expect.  Top shows the postmaster
process running the query as using up 99.9 percent of one CPU, while the i/o
wait time never gets above 3%.  vmstat shows the "block out" (bo) number
quite high, 15 to 20 thousand, which also surprises me.  "block in" is from
0 to about 2500.  iostat shows 15,000 to 20,000 blocks written every 5
seconds, while it shows 0 blocks read.  There is no other significant
process running on the box.  (Apache is running but is not being used here a
3:00a.m. on Sunday).  This is a dual Opteron box with 16 Gb memory and a
3ware SATA raid runing 64bit SUSE.  Something seems badly wrong.

As I post this, the query is approaching an hour of run time.  I've listed
an explain of the query and my non-default conf parameters below.  Please
advise on anything I should change or try, or on any information I can
provide that could help diagnose this.


GroupAggregate  (cost=9899282.83..10285434.26 rows=223858 width=15)
  Filter: (count(*) > 1)
  ->  Sort  (cost=9899282.83..9994841.31 rows=38223392 width=15)
        Sort Key: v_barcode
        ->  Seq Scan on lead  (cost=0.00..1950947.92 rows=38223392 width=15)

shared_buffers = 50000
work_mem = 16384
maintenance_work_mem = 16384
max_fsm_pages = 100000
max_fsm_relations = 5000
wal_buffers = 32
checkpoint_segments = 32
effective_cache_size = 50000
default_statistics_target = 50



В списке pgsql-performance по дате отправления:

Предыдущее
От: Simon Riggs
Дата:
Сообщение: Re: [HACKERS] insert performance for win32
Следующее
От: Joost Kraaijeveld
Дата:
Сообщение: Performance PG 8.0 on dual opteron / 4GB / 3ware Raid5 / Debian??