Logging Difficult Queries/ru

From PostgreSQL wiki
Jump to navigationJump to search


Чтобы найти наиболее медленные запросы в вашей системе, можно воспользоваться настройкой log_min_duration_statement, установив значение, выраженное в миллисекундах, по истечению которого запрос попадает в лог. Начиная с версии PostgreSQL 8.4 также можно воспользоваться pg_stat_statements не прибегая к сторонним инструментам.

Некоторые утилиты анализа данных лога:

При применении этих инструментов можно выставить минимальное значение в ноль для фиксации всех запросов. Это приведет к интенсивному логгированию, однако, позволит получить полную картину происходящего на сервере.

Контрольные точки могут останавливать запросы до нескольких секунд. Если наблюдаются запросы, выполняющиеся по несколько секунд и при этом завершающиеся в одно и то же время, обратитесь к логгированию контрольных точек. Если выяснится, что они выстраиваются в очередь, стоит поиграться с настройками.

auto-explain

Для PostgreSQL существует модуль Auto-Explain, сохраняющий планы выполнения запросов, превышающих заданный временной порог при выполнении. Полученные планы могут помочь в обнаружении причин медленного выполнения проблемных запросов. См. Waiting for 8.4 - auto-explain, например.