Существует несколько основных способов:
Включение логирования медленных запросов в конфигурации PostgreSQL.
В файле postgresql.conf
можно настроить следующие параметры:
log_min_duration_statement
: Записывает в лог запросы, выполняющиеся дольше указанного времени (в миллисекундах).log_statement
: Определяет, какие запросы логировать ('none', 'ddl', 'mod', 'all'). Для анализа медленных запросов обычно используется в сочетании с log_min_duration_statement
.После изменения postgresql.conf
необходимо перезагрузить конфигурацию или сам сервер PostgreSQL. Журналы будут располагаться в каталоге данных PostgreSQL, путь к которому можно узнать из параметра log_directory
.
Анализировать логи можно вручную или с помощью утилит, таких как pgBadger
, которая парсит логи и генерирует читабельные отчеты.
Использование команды EXPLAIN и EXPLAIN ANALYZE.
EXPLAIN
: Показывает план выполнения запроса без его фактического выполнения. Это позволяет понять, как база данных планирует получить данные, какие индексы будут использоваться, какие операции будут выполнены (сканирование таблиц, соединения и т.д.).EXPLAIN ANALYZE
: Выполняет запрос и показывает фактический план выполнения, включая время, затраченное на каждый этап, количество строк, пройденных каждым узлом плана, и использование памяти. Это дает более точное представление о производительности запроса.При анализе вывода EXPLAIN ANALYZE
следует обращать внимание на:
Существует несколько основных способов:
Включение логирования медленных запросов в конфигурации PostgreSQL.
В файле postgresql.conf
можно настроить следующие параметры:
log_min_duration_statement
: Записывает в лог запросы, выполняющиеся дольше указанного времени (в миллисекундах).log_statement
: Определяет, какие запросы логировать ('none', 'ddl', 'mod', 'all'). Для анализа медленных запросов обычно используется в сочетании с log_min_duration_statement
.После изменения postgresql.conf
необходимо перезагрузить конфигурацию или сам сервер PostgreSQL. Журналы будут располагаться в каталоге данных PostgreSQL, путь к которому можно узнать из параметра log_directory
.
Анализировать логи можно вручную или с помощью утилит, таких как pgBadger
, которая парсит логи и генерирует читабельные отчеты.
Использование команды EXPLAIN и EXPLAIN ANALYZE.
EXPLAIN
: Показывает план выполнения запроса без его фактического выполнения. Это позволяет понять, как база данных планирует получить данные, какие индексы будут использоваться, какие операции будут выполнены (сканирование таблиц, соединения и т.д.).EXPLAIN ANALYZE
: Выполняет запрос и показывает фактический план выполнения, включая время, затраченное на каждый этап, количество строк, пройденных каждым узлом плана, и использование памяти. Это дает более точное представление о производительности запроса.При анализе вывода EXPLAIN ANALYZE
следует обращать внимание на:
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.