Я нахожусь в процессе рассмотрения каждого оператора SQL, который приложение делает с базой данных, из соображений производительности. Есть ли простой способ регистрировать все операторы, выполняемые сервером базы данных PostgreSQL? Спасибо.
Я нахожусь в процессе рассмотрения каждого оператора SQL, который приложение делает с базой данных, из соображений производительности. Есть ли простой способ регистрировать все операторы, выполняемые сервером базы данных PostgreSQL? Спасибо.
Ответы:
Опция config, которую вы ищете, это log_statement = "all"
(если вы просто хотите операторы), или log_min_statement_duration = <some number>
если вы просто после «медленных» запросов (для некоторого значения «slow»). См. Http://www.postgresql.org/docs/current/static/runtime-config-logging.html для получения дополнительной информации о конфигурации регистрации.
explain analyze
медленный запрос при его выполнении, вы можете начать тестирование с этим, так как 8.4 еще не выпущен, но это хорошая возможность узнать, что произошло во время выполнения. , если результаты анализа объяснения в порядке, вы, вероятно, сталкиваетесь с проблемами ввода-вывода или ограничений ЦП, но по крайней мере вы будете знать, что это не сам запрос
auto_explain
Модуль является очень полезным для этого. Он будет не только регистрировать операторы, он будет регистрировать их планы выполнения и даже может регистрировать операторы, выполняемые в функциях PL / PgSQL. Падение производительности довольно низкое, если вы не включите анализ, и в этом случае у вас будет довольно много временных затрат для всех запросов.
Смотрите auto_explain
в документации.
auto_explain
, он находится в их списке благословенных модулей. Смотрите документацию на docs.aws.amazon.com/AmazonRDS/latest/UserGuide/…
Конечно, вы можете обнаружить самые медленные запросы самостоятельно, но я советую вам использовать pgFouine - анализатор логов PostgreSQL. Он прост в установке и действительно полезен.