sys.dm_pdw_exec_sessions(Transact-SQL)

適用対象:Azure Synapse AnalyticsAnalytics Platform System (PDW)

現在または最近開かれているすべてのセッションに関する情報を保持しています。 sys.dm_pdw_exec_sessions動的管理ビュー(DMV)は、セッションごとに1行を一覧表示します。

列名 データの種類 Description 範囲
session_id nvarchar(32) 現在のクエリのID、または最後のクエリ実行時(セッションが終了時でクエリが実行中の場合)です。 このビューのキー。 システム内のすべてのセッションでユニークです。
status nvarchar(10) 現在のセッションの場合、そのセッションが現在アクティブかアイドルかを特定します。 過去のセッションでは、セッションの状態が「閉じられた」または「終了」と表示されることがあります(強制的に閉鎖された場合)。 ACTIVECLOSEDIDLETERMINATED
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 IDs欄には閉じた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;