Postgres:如何查看数据库服务器正在执行的所有 SQL 语句?

Postgres:如何查看数据库服务器正在执行的所有 SQL 语句?

出于性能原因,我正在检查应用程序针对数据库执行的每条 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在文档中。

答案3

当然,你可以自己检测最慢的查询,但我建议你使用普吉·富因— PostgreSQL 日志分析器。它易于安装并且非常有用。

报告样本:这里这里

相关内容