
Я нахожусь в процессе проверки каждого SQL-выражения, которое приложение делает в отношении базы данных, по соображениям производительности. Есть ли простой способ регистрировать все выражения, которые выполняются сервером базы данных PostgreSQL? Спасибо.
решение1
Параметр конфигурации, который вы ищете, это log_statement = "all"
(если вам нужны только операторы), или log_min_statement_duration = <some number>
если вам нужны только «медленные» запросы (для некоторого значения «медленно»). Смотритеhttp://www.postgresql.org/docs/current/static/runtime-config-logging.htmlдля получения более подробной информации о настройке ведения журнала.
решение2
Модуль auto_explain
очень полезен для этого. Он не только регистрирует операторы, но и планы их выполнения и может даже регистрировать операторы, запущенные в функциях PL/PgSQL. Падение производительности довольно незначительно, если только вы не включите анализ, в этом случае вы несете значительную часть временных затрат для всех запросов.
Видетьauto_explain
в документации.