Skip site navigation (1) Skip section navigation (2)

Re: COUNT(*) дофига весит

From: silly_sad <sad(at)bankir(dot)ru>
To: Maxim Boguk <mboguk(at)masterhost(dot)ru>, pgsql-ru-general(at)postgresql(dot)org
Subject: Re: COUNT(*) дофига весит
Date: 2008-04-09 13:16:08
Message-ID: 47FCC198.7020402@bankir.ru (view raw or flat)
Thread:
Lists: pgsql-ru-general
Спасибо.
Попытаюсь ответить как можно точнее:

Maxim Boguk wrote:

> 1)Какая версия postgres?

8.2.6


> 2)Что стоит в настройках postgresql.conf для *_cost параметров?

# - Planner Cost Constants -

#seq_page_cost = 1.0                    # measured on an arbitrary scale
#random_page_cost = 4.0                 # same scale as above
#cpu_tuple_cost = 0.01                  # same scale as above
#cpu_index_tuple_cost = 0.005           # same scale as above
#cpu_operator_cost = 0.0025             # same scale as above
#effective_cache_size = 1024MB


> 3)Если сделать 5 explain ANALYZE этого запроса подряд один за другим
> время будет постоянное или только первый запрос притормаживает?

Время выполнения постоянное между эксплэйнами
(но естественно зависит от загрузки сервера)


> 4)Что показывает SELECT pg_relation_size('accounts');

  pg_relation_size
------------------
         353107968


> 5)Насколько вообще сервер занят (load avg/нагрузка на диски)?

Total: 169 processes, 1706 lwps, load averages: 0.93, 1.11, 1.22

вот в текущий момент нагрузка на диск мизерная,
я запускаю больной запрос, запрос тормозит
iostat роста нагрузки на диск не показывает


> 6)Нету ли старых открытых транзакций (более 24х часов скажем)?

Была одна. (как могло влиять ?)
Закрыл. (что надо сделать чтобы это возымело эффект?)



>> Подскажите пожалуйста какие ошибки
>> (можетбыть в настройках постгреса)
>> могли привести вот к такому эффекту:
>>
>> personal=# explain ANALYZE SELECT count(*) from accounts;
>>
>>                      QUERY PLAN
>> -------------------------------------------------------------
>>  Aggregate  (cost=43126.25..43126.26 rows=1 width=0) (actual 
>> time=975.628..975.628 rows=1 loops=1)
>>    ->  Seq Scan on accounts  (cost=0.00..43121.80 rows=1780 width=0) 
>> (actual time=0.122..974.565 rows=1782 loops=1)
>>  Total runtime: 975.687 ms
>>
>>
>> personal=# SELECT count(*) from accounts;
>>
>>  count
>> -------
>>   1782
>>
>>
>> Всего-то 1782 записи ! и такая огромная цена.
>> и реальное время выполнения тоже неприемлемое.
>>
>> vacuum analyze делается каждую ночь
>>
> 
> 


In response to

Responses

pgsql-ru-general by date

Next:From: Maxim BogukDate: 2008-04-09 14:31:37
Subject: Re: COUNT(*) дофига весит
Previous:From: silly_sadDate: 2008-04-09 11:30:27
Subject: COUNT(*) дофига весит

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group