Postgresql 给定事务中的所有查询
我目前正在尝试调试我的应用程序中的“事务中空闲”场景。我可以通过查看pg_state_活动找到状态为“事务中空闲”的查询的进程id和事务开始时间Postgresql 给定事务中的所有查询,postgresql,postgresql-9.2,Postgresql,Postgresql 9.2,我目前正在尝试调试我的应用程序中的“事务中空闲”场景。我可以通过查看pg_state_活动找到状态为“事务中空闲”的查询的进程id和事务开始时间 select pid,query from pg_stat_activity where state='idle in transaction' OR state='idle' 是否有任何方法可以识别与“idle in transaction”查询相对应的事务中执行的所有查询的列表您是否正在尝试获取当前显示为idle in transaction的事
select pid,query from pg_stat_activity where state='idle in transaction' OR state='idle'
是否有任何方法可以识别与“idle in transaction”查询相对应的事务中执行的所有查询的列表您是否正在尝试获取当前显示为idle in transaction的事务之前运行的所有语句的列表 如果是这样,那么在SQL级别就没有简单安全的方法来实现这一点。您应该使用CSV日志记录模式来分析查询历史记录,并将查询分组到事务中。通过
将CSV复制到PostgreSQL表中以便于分析,您可以轻松地使用SQL完成这项工作
或者,使用普通文本日志,并设置包含事务ID和进程ID的log\u line\u前缀
(我可以发誓我看到了一个用于调试的扩展,它收集了一个查询跟踪,但现在找不到它,我不确定它是否有用,因为您必须在问题连接上运行一个命令来提取它收集的数据)