适用于:Azure Synapse Analytics
分析平台系统 (PDW)
保存所有当前或近期开放的会议信息。
sys.dm_pdw_exec_sessions动态管理视图(DMV)每个会话列出一行。
| 列名 | 数据类型 | Description | 范围 |
|---|---|---|---|
session_id |
nvarchar(32) | 当前查询的 ID 或最后一次查询运行的 ID(如果会话已终止且查询在终止时正在执行)。 此视图的键。 | 系统中所有会话中都是独一无二的。 |
status |
nvarchar(10) | 当前会话,识别该会话当前是活跃还是闲置。 对于过去的会话,会话状态可能会显示为关闭或被关闭(如果会话被强制关闭)。 |
ACTIVE、CLOSED、IDLE、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。 |
有关该视图保留的最大行信息,请参见 容量限制元数据。
Permissions
需要 VIEW SERVER STATE 权限。
注解
Azure Synapse Analytics 中的无服务器 SQL 池不支持此语法。 对于无服务器的 SQL 池,可以使用 sys.dm_exec_sessions。
Examples
A. 活动会话
查找活跃会话的计数:
SELECT active_count = COUNT(session_Id)
FROM sys.dm_pdw_exec_sessions
WHERE status = 'ACTIVE';
B。 开放时段超过10分钟
要查找开放时间超过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
C。 当前连接的显示会话应用/用户
查找会话信息,包括源应用、连接对象、连接来源,以及是否使用Microsoft Entra ID或SQL认证。
SELECT DISTINCT CASE
WHEN len(tt) = 0
THEN app_name
ELSE tt
END AS application_name
,login_name
,ip_address
FROM (
SELECT DISTINCT app_name
,substring(client_id, 0, CHARINDEX(':', ISNULL(client_id, '0.0.0.0:123'))) AS ip_address
,login_name
,isnull(substring(app_name, 0, CHARINDEX('-', ISNULL(app_name, '-'))), 'h') AS tt
FROM sys.dm_pdw_exec_sessions
) AS a;