it-swarm-ru.tech

Postgres: Как я могу увидеть все операторы SQL, выполняемые сервером базы данных?

Я нахожусь в процессе рассмотрения каждого оператора SQL, который приложение делает с базой данных, из соображений производительности. Есть ли простой способ регистрировать все операторы, выполняемые сервером базы данных PostgreSQL? Спасибо.

23
Jin Kim

Опция конфигурации, которую вы ищете: log_statement = "all" (если вы просто хотите утверждения) или log_min_statement_duration = <some number> если вы просто после "медленных" запросов (для некоторого значения "медленный"). Смотрите http://www.postgresql.org/docs/current/static/runtime-config-logging.html для получения более подробной информации о конфигурации регистрации.

27
womble

auto_explain модуль очень полезен для этого. Он будет не только регистрировать операторы, он будет регистрировать их планы выполнения и даже может регистрировать операторы, выполняемые в функциях PL/PgSQL. Падение производительности довольно низкое, если вы не включите анализ, и в этом случае у вас будет довольно много временных затрат для всех запросов.

Видеть auto_explain в документации.

5
Craig Ringer

Конечно, вы можете обнаружить самые медленные запросы самостоятельно, но я советую вам использовать pgFouine - анализатор логов PostgreSQL. Это легко установить и действительно полезно.

Примеры отчетов: здесь и здесь .

3
Severe_admin