powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Сбой статистики.
10 сообщений из 10, страница 1 из 1
Сбой статистики.
    #39593433
kukurzik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеем часто обновляемую табл. insert/delete.
Обновления, как правило носят пиковый характер, может накапать "почти сразу" сотни миллионов строк.
Вакуумилась регулярно, однако ныне обнаружен крайне увлекательный симптом слабоумия.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
  SELECT psut.relname,
     last_autovacuum::date,
     pg_class.reltuples::bigint AS n_tup,
     n_tup_ins,
     n_dead_tup,
     n_live_tup,
     pg_class.reltuples::bigint/n_tup_ins ::int diff,
     current_date
 FROM pg_stat_user_tables psut
 JOIN pg_class on psut.relid = pg_class.oid
 WHERE n_tup_ins > 0
 ORDER BY n_dead_tup desc
 LIMIT 1;


  relname    | last_autovacuum |    n_tup     | n_tup_ins  | n_dead_tup |  n_live_tup  | diff |    date
-------------------------------------+-----------------+--------------+------------+------------+-----------
 transfers   |  2018-01-29     | 165248892928 | 1616281352 |   26834278 | 165235471748 |  102 | 2018-01-30



165 миллиардов - это сух паёк лет на 10 вперед.
Разница даже между n_tup_ins - x100 !
Всего же в табл ~ 100.000 строк.

Понятно, отличается изрядной гибкостью суждений, но це уж людоедство.
Что может быть причиной?
...
Рейтинг: 0 / 0
Сбой статистики.
    #39593442
Lonepsycho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kukurzikЧто может быть причиной?

частые инсерт/дилит и неуспевающий вакуум?
...
Рейтинг: 0 / 0
Сбой статистики.
    #39593479
kukurzik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kukurzikВакуумилась регулярно


Разумеется, после необъяснимого сбоя статистики таблица не вакуумировалась.
...
Рейтинг: 0 / 0
Сбой статистики.
    #39593497
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kukurzik,

реплики есть?
...
Рейтинг: 0 / 0
Сбой статистики.
    #39593502
kukurzik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел Лузанов,
нет.
...
Рейтинг: 0 / 0
Сбой статистики.
    #39593504
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kukurzik,

a pg_class.relpages с реальным размером таблицы как соотносятся?
...
Рейтинг: 0 / 0
Сбой статистики.
    #39593508
kukurzik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kukurzik,

Если запускать analyze, то приблизительное кол-во кортежей дается в диапазоне 150-200 млрд.
Таблица пуста.

Вывод, увы, не зафиксировал.

Вот что дает ваккуум аналайз.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
vacuum analyze verbose transfers;

INFO:  vacuuming "public.transfers"
INFO:  scanned index "transfers_shop_idx" to remove 27834278 row versions
DETAIL:  CPU 0.57s/20.97u sec elapsed 21.72 sec.
INFO:  scanned index "transfers_pkey" to remove 27834278 row versions
DETAIL:  CPU 0.26s/6.00u sec elapsed 8.81 sec.
INFO:  "transfers": removed 27834278 row versions in 230972 pages
DETAIL:  CPU 0.01s/1.08u sec elapsed 1.18 sec.
INFO:  index "transfers_shop_idx" now contains 0 row versions in 120735 pages
DETAIL:  27832314 index row versions were removed.
120281 index pages have been deleted, 23986 are currently reusable.
CPU 0.00s/0.00u sec elapsed 0.00 sec.
INFO:  index "transfers_pkey" now contains 0 row versions in 95287 pages
DETAIL:  27834022 index row versions were removed.
95016 index pages have been deleted, 18968 are currently reusable.
CPU 0.00s/0.00u sec elapsed 0.00 sec.
INFO:  "transfers": found 13483310 removable, 0 nonremovable row versions in 230972 out of 230972 pages
DETAIL:  0 dead row versions cannot be removed yet.
There were 0 unused item pointers.
0 pages are entirely empty.
CPU 1.05s/29.60u sec elapsed 33.47 sec.
INFO:  "transfers": truncated 230972 to 0 pages
DETAIL:  CPU 0.37s/0.35u sec elapsed 0.74 sec.
INFO:  analyzing "public.transfers"
INFO:  "transfers": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows

Query returned successfully with no result in 34.3 secs.
...
Рейтинг: 0 / 0
Сбой статистики.
    #39593513
kukurzik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вспоминая былое примерно:

Код: sql
1.
2.
3.
ANALYZE transfers
INFO:  analyzing "public.transfers"
INFO:  "transfers": scanned 3000 of 230972 pages, containing 0 live rows and 27834278  dead rows; очень много estimated total rows
...
Рейтинг: 0 / 0
Сбой статистики.
    #39593522
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kukurzikвспоминая былое примерно:

Код: sql
1.
2.
3.
ANALYZE transfers
INFO:  analyzing "public.transfers"
INFO:  "transfers": scanned 3000 of 230972 pages, containing 0 live rows and 27834278  dead rows; очень много estimated total rows



... scanned 3000 ...
По идее должно быть 30000. Или уменьшали default_statistics_target со 100 до 10?
Похоже, что сильно ошибается собиратель статистики на небольшой выборке, особенно у учетом того, что все 3000 страниц оказались только с мертвыми строками.
Может стоит увеличить для этой таблицы default_statistics_target, может даже больше чем 100 по умолчанию.
...
Рейтинг: 0 / 0
Сбой статистики.
    #39593762
kukurzik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел Лузанов,

да, это правда, воспоминания подвели.
статистик таргет по дефолту и отсканировано было 30.000 страниц.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Сбой статистики.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]