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