sys.dm_pdw_exec_sessions (Transact-SQL)

Область применения:Azure Synapse Analytics AnalyticsPlatform System (PDW)

Содержит информацию обо всех сессиях, которые сейчас или недавно открылись. Динамический вид управления (DMV) указывает sys.dm_pdw_exec_sessions одну строку на сессию.

Имя столбца Тип данных Description Диапазон
session_id nvarchar(32) ID текущего или последнего запроса выполняется (если сессия ЗАВЕРШЕНА и запрос выполнялся в момент завершения). Ключ для этого представления. Уникально для всех сессий системы.
status nvarchar(10) Для текущих сессий определяет, активна ли сессия в данный момент или простаивает. Для прошлых сессий статус сессии мог показывать «закрытый» или «прерванный» (если сессия была насильно закрыта). ACTIVE, CLOSED, IDLE, TERMINATED
request_id nvarchar(32) ID текущего или последнего запроса запускается. Уникальный для всех запросов в системе. NULL Если никто не был задействован.
security_id varbinary(85) Security 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 Столбец IDs содержит закрытые SPID.

Для информации о максимальном количестве строк, сохраняемых в этом виде, см. Метаданные ограничений вместимости.

Permissions

Требуется разрешение VIEW SERVER STATE.

Замечания

Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics. Для серверного SQL-пула используйте sys.dm_exec_sessions.

Examples

А. Активные сеансы

Чтобы узнать количество активных сессий:

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;