powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Мониторинг целостности БД
8 сообщений из 8, страница 1 из 1
Мониторинг целостности БД
    #40116408
Kr_Yury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть большое подозрение, что навернулась одна из таблиц или её часть, или данные каких-то системных таблиц, относящиеся к ней, или какие-то из индексов по ней.
В чём это выражается: некоторые запросы с фильтрацией по индексированным колонкам виснут намертво. Причём не только Select, но и explain. Если ли в самом Postgresql какие-то средства мониторинга таких проблем? Или может это можно увидеть по каким то системным таблицам?
...
Рейтинг: 0 / 0
Мониторинг целостности БД
    #40116420
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kr_Yury
Есть большое подозрение, что навернулась одна из таблиц или её часть, или данные каких-то системных таблиц, относящиеся к ней, или какие-то из индексов по ней.
В чём это выражается: некоторые запросы с фильтрацией по индексированным колонкам виснут намертво. Причём не только Select, но и explain. Если ли в самом Postgresql какие-то средства мониторинга таких проблем? Или может это можно увидеть по каким то системным таблицам?


hmm сделайте сначала vacuum analyze по таблице
потом если проблема не уйдёт - есть штатное расширение amcheck для проверки индексов.

PS: вы случайно не удаляли много из этой таблицы последнее время? Таблица то большая?

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Мониторинг целостности БД
    #40116424
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
explain без analyze зависает?
...
Рейтинг: 0 / 0
Мониторинг целостности БД
    #40116426
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya
explain без analyze зависает?


В некоторых особых случаях если
1)таблица большая
2)из неё много удаляли очень последнее время (из начала или конца таблицы)
3)autovacuum по ней не отработал до сих пор (или сломан)
4)диски медленные (механика или сетевой storage)

explain может не то чтобы зависнуть но задуматься очень на долго (десятки минут)
если же реально зависает - то это уже gdb/perf/strace в руки и низкоуровневая отладка проблемы.
(ну и amcheck полезно прогнать да)

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Мониторинг целостности БД
    #40116429
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk
Guzya
explain без analyze зависает?


В некоторых особых случаях если
1)таблица большая
2)из неё много удаляли очень последнее время (из начала или конца таблицы)
3)autovacuum по ней не отработал до сих пор (или сломан)
4)диски медленные (механика или сетевой storage)

explain может не то чтобы зависнуть но задуматься очень на долго (десятки минут)
если же реально зависает - то это уже gdb/perf/strace в руки и низкоуровневая отладка проблемы.
(ну и amcheck полезно прогнать да)

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru


А может объяснить почему?

Как я считаю, explain(без параметров) берет имеющуюся статистику и на основе ее "считает" планы.
Т.е. ни какие "движущиеся" части не трогаются.
...
Рейтинг: 0 / 0
Мониторинг целостности БД
    #40116440
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya
Maxim Boguk
пропущено...


В некоторых особых случаях если
1)таблица большая
2)из неё много удаляли очень последнее время (из начала или конца таблицы)
3)autovacuum по ней не отработал до сих пор (или сломан)
4)диски медленные (механика или сетевой storage)

explain может не то чтобы зависнуть но задуматься очень на долго (десятки минут)
если же реально зависает - то это уже gdb/perf/strace в руки и низкоуровневая отладка проблемы.
(ну и amcheck полезно прогнать да)

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru


А может объяснить почему?

Как я считаю, explain(без параметров) берет имеющуюся статистику и на основе ее "считает" планы.
Т.е. ни какие "движущиеся" части не трогаются.


Увы всё сложнее... для части индексированных полей и некоторых планов планировщик использует get_actual_variable_range() функцию для просмотра АКТУАЛЬНЫХ граничных значений поля в таблице (min/max).
Что обычно по индексу быстро но в некоторых ситуациях типа вышеописанной мною - оказывается НЕбыстро (потому что по индексу находим значения а они уже удалены и так можно очень долго идти если (auto)vacuum по таблице с момента удаления не прошёл).
Т.е. в некоторых ситуациях планировщик в реальную таблицу ходит а не только в стату.

Поиск по https://www.postgresql.org/search/?m=1&q=get_actual_variable_range&l=&d=-1&s=d даёт много инфы на подумать.
У меня и у самого downtimes были пару раз в таких ситуациях (и помогает только удаление по частям и регулярные vacuums в процессе если что то подобное происходит).

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Мониторинг целостности БД
    #40116449
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk, спасибо!
...
Рейтинг: 0 / 0
Мониторинг целостности БД
    #40116458
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
познавательно, спасибо
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Мониторинг целостности БД
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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