使用 SQL 而不是观点找出 teradata 中当前的 运行 查询

Find out the currently running queries in teradata using SQL instead of viewpoint

我想了解当前正在执行的特定于用户或组的查询是什么。我不想使用 view point 。我需要使用 SQL 来实现此功能。

试试这个

select * from dbc.SessionInfo;

你会得到一个请求列表,其中包含他们的用户和组

希望能帮到你

要在不使用 Viewpoint 的情况下为当前处于活动状态的 session 获取 SQL,您需要使用 PMPC APIs(我相信 Viewpoint 可能也在使用它) ) 从数据库中获取该信息。

步骤 1:从 MontiorSession()

获取 MonitorSQLText() 的输入值
SELECT HostID
     , SessionNo
     , RunVprocNo 
  FROM TABLE(MonitorSession({HostID}, {UserName}, {SessionNo})) AS T2;

HostID of -1 将包括所有主机

UserName of '*' 将包括所有用户

SessionNo 共 0 个包括所有 sessions

您应该至少提供其中一个值以缩小搜索范围。

第 2 步:获取SQL您感兴趣的Session文本

SELECT *
  FROM TABLE (MonitorSQLText({HostID}, {SessionNo}, {RunVprocNo})) AS T2;

使用第一步中的HostIDSessionNoRunVprocNo

我尝试将第 1 步中的值放入一个 Volatile Table 和一个 CTE 中以动态地提供第 2 步。当我这样做时,数据库响应错误表明 MonitorSQLText() 在变量模式下不能 运行。这与指示必须在 'constant mode'.

中特别使用此 API 的文档一致

这应该适用于 TD 14+ 并且可能适用于 TD 13.10。

Viewpoint 使用的 PMon-API 也可用作 SQL-functions,例如这将返回有关所有当前登录会话的信息:

SELECT * FROM TABLE (MonitorSession(-1,'*',0)) AS dt;

您可以检查 PEState 或 AMPState 列以查找活动查询。