2013-08-05 41 views
1

在Rails,我开始常规查询,例如:查找Rails的,PostgreSQL的查询PID(跟踪查询的ID)

MyTable.where("user_id = ?",5) 

[我运行acutual查询需要很长的时间,所以我会有时间来进行下一步骤]

然后,在Postgres的,我运行命令:

SELECT * FROM pg_stat_activity; 

这将返回当前的查询列表与PID的和其它信息的数据库。包含在该列表中的是我的查询(我知道,因为它显示正在运行的查询参数)。我的问题是如何跟踪某个查询?在rails中启动查询后,我想知道查询的PID以及'pg_stat_activity'表可以提供的其他信息,但是除了匹配查询文本或尝试使用hacky方法之外,我无法找到确切的查询比较时间戳。

任何想法将不胜感激。 谢谢!

+0

你可以首先从您的客户端应用程序与'选择pg_backend_pid(的PID)'(PID不指查询,但对整个客户端会话) –

回答

1

如果这是您从rails应用程序那一刻开始运行的唯一查询,那么可以查看application_name列以区别于其他应用程序。

如果没有,我想不出任何其他办法,而不是比较实际查询