sys.dm_pdw_exec_sessions (Transact-SQL)

适用于: Azure Synapse Analytics 分析平台系统 (PDW)

保存有关设备上当前或最近打开的所有会话的信息。 它为每个会话列出一行。

注意

Azure Synapse Analytics 中的无服务器 SQL 池不支持此语法。 对于无服务器 SQL 池,请使用 sys.dm_exec_sessions

列名称 数据类型 说明 范围
session_id nvarchar(32) 当前查询或最后一个查询运行的 ID(如果会话已终止且查询在终止时正在执行)。 此视图的键。 在系统中的所有会话中唯一。
status nvarchar(10) 对于当前会话,标识会话当前是处于活动状态还是空闲。 对于过去的会话,会话状态可能显示为已关闭或终止(如果会话被强行关闭)。 ACTIVE、、CLOSEDIDLE、、TERMINATED
request_id nvarchar(32) 当前查询或上次查询运行的 ID。 在系统中的所有请求中唯一。 NULL 如果尚未运行,则为
security_id varbinary(85) 运行会话的主体的安全 ID。
login_name nvarchar(128) 运行会话的主体的登录名。 符合用户命名约定的任何字符串。
login_time datetime 用户登录并创建此会话的日期和时间。 当前时间之前的有效 日期/ 时间。
query_count int 捕获此会话自创建以来运行的查询/请求数。 大于或等于 0。
is_transactional bit 捕获会话当前是否在事务中。 0 用于自动提交, 1 用于事务性。
client_id nvarchar(255) 捕获会话的客户端信息。 IPv6 地址指示使用专用终结点。 任何有效的字符串。
app_name nvarchar(255) 捕获应用程序名称信息(可选)设置为连接过程的一部分。 任何有效的字符串。
sql_spid int ID 列包含关闭的 SPID。

有关此视图保留的最大行的信息,请参阅容量限制主题中的“元数据”部分。

权限

需要 VIEW SERVER STATE 权限。

示例

查找活动会话计数:

SELECT active_count = COUNT(session_Id)
FROM sys.dm_pdw_exec_sessions
WHERE status = 'ACTIVE';

若要查找已打开超过 10 分钟的会话,

SELECT *, session_duration_s = DATEDIFF (s, login_time, getdate() ) 
 FROM sys.dm_pdw_exec_sessions
 WHERE DATEDIFF (s, login_time, getdate() ) > 600; -- 10 minutes