问题:有没有办法记录使用 pg_query_params() 传入的数组?

我们大量使用pg_query_params()从 PHP 查询我们的 PostgreSQL 数据库。在分析 postgres 日志时,我们的查询记录如下:

SELECT
    email_address
FROM
    user u
WHERE
    user_id = $1
    AND user_mode = $2
LIMIT $3;

只有数组占位符,而不是实际值。我们的 PHP 应用程序能够记录返回数组的错误,但是如果我们可以直接跟踪故障查询的参数,则调整过程会容易得多。

有没有办法在 PostgreSQL 9.2.4 内部做到这一点?

解答

如果您设置了log_statement = all,那么参数将记录在日志中的单独一行。您可能会发现设置一个包含会话 pid 的log_line_prefix有助于确保您可以将语句文本与参数相关联。

没有将参数替换为内联查询文本的功能。这是有意识地避免的,因为替换查询参数会使日志分析工具更难收集有关具有不同参数的同一语句的多次运行的统计信息。

如果有一种方便的方法可以同时执行这两种操作,或者说“我想查看带有参数的语句” .... 但没有。

Logo

PostgreSQL社区为您提供最前沿的新闻资讯和知识内容

更多推荐