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