我想了解当前正在执行的特定于用户或组的查询。我不想使用观点。我需要使用SQL来实现此功能。
答案 0 :(得分:2)
试试这个
select * from dbc.SessionInfo;
您将拥有一个包含其用户和群组的请求列表
我希望能帮到你
答案 1 :(得分:2)
要在不使用Viewpoint的情况下获取当前活动的会话的SQL,您需要使用PMPC API(我相信Viewpoint可能正在使用它)从数据库中获取该信息。
步骤1:从MontiorSession()获取MonitorSQLText()的输入值
SELECT HostID
, SessionNo
, RunVprocNo
FROM TABLE(MonitorSession({HostID}, {UserName}, {SessionNo})) AS T2;
-1的 HostID
将包含所有主机
UserName
' *'将包括所有用户
SessionNo
为0包括所有会话
您应该至少提供其中一个值来缩小搜索范围。
第2步:获取您感兴趣的会话的SQLText
SELECT *
FROM TABLE (MonitorSQLText({HostID}, {SessionNo}, {RunVprocNo})) AS T2;
从第一步开始使用HostID
,SessionNo
,RunVprocNo
。
我尝试将步骤1中的值放入易失性表格和CTE中,以动态提供步骤2。当我这样做时,数据库响应错误,表明MonitorSQLText()
无法以变量模式运行。这与文档一致,表明此API特别必须以“常量模式”使用。
这应该适用于TD 14+以及TD 13.10。
答案 2 :(得分:2)
Viewpoint使用的PMon-API也可以SQL-functions使用,例如这是返回有关当前所有登录会话的信息:
SELECT * FROM TABLE (MonitorSession(-1,'*',0)) AS dt;
您可以查看PEState或AMPState列以查找活动查询。