2013-06-03 144 views
2

我们大量使用pg_query_params()来从PHP查询我们的PostgreSQL数据库。在分析Postgres的记录,但是我们的查询记录,如:有没有办法记录使用pg_query_params()传入的数组?

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

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

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

回答

1

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

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

如果有一种方便的方法可以做到这一点,或者说“我希望看到含有params的语句”......但是没有。

+0

正确地解决了这个问题。至少在我自己的过程中,最好在外面使用params。我现在可以在筛选特定查询语句之后比较持续时间与参数组合。非常感谢你! –

相关问题