sys.dm_exec_sessions (Transact-SQL)sys.dm_exec_sessions (Transact-SQL)

適用対象: ○SQL Server ○Azure SQL Database XAzure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

SQL ServerSQL Server での認証済みセッションごとに 1 行を返します。Returns one row per authenticated session on SQL ServerSQL Server. sys.dm_exec_sessions は、すべてのアクティブなユーザー接続と内部タスクに関する情報を示すサーバー スコープのビューです。sys.dm_exec_sessions is a server-scope view that shows information about all active user connections and internal tasks. この情報には、クライアント バージョン、クライアント プログラム名、クライアントのログイン日時、ログイン ユーザー、現在のセッション設定などが含まれます。This information includes client version, client program name, client login time, login user, current session setting, and more. sys.dm_exec_sessions を使用して、最初に、現在のシステムの負荷を表示して目的のセッションを特定します。その後、他の動的管理ビューまたは動的管理関数を使用して、そのセッションの詳細を参照します。Use sys.dm_exec_sessions to first view the current system load and to identify a session of interest, and then learn more information about that session by using other dynamic management views or dynamic management functions.

Sys.dm_exec_connections、sys.dm_exec_sessions、および sys.dm_exec_requests 動的管理ビューにマップする、 sys.sysprocessesシステム テーブル。The sys.dm_exec_connections, sys.dm_exec_sessions, and sys.dm_exec_requests dynamic management views map to the sys.sysprocesses system table.

注: これからAzure SQL データ ウェアハウスAzure SQL Data WarehouseまたはParallel Data WarehouseParallel Data Warehouse、名前を使用して、 sys.dm_pdw_nodes_exec_sessionsします。NOTE: To call this from Azure SQL データ ウェアハウスAzure SQL Data Warehouse or Parallel Data WarehouseParallel Data Warehouse, use the name sys.dm_pdw_nodes_exec_sessions.

列名Column name データ型Data type 説明とバージョン固有の情報Description and version-specific information
session_idsession_id smallintsmallint アクティブな各プライマリ接続に関連付けられたセッションの識別子。Identifies the session associated with each active primary connection. NULL 値は許可されません。Is not nullable.
login_timelogin_time datetimedatetime セッションが確立された時刻。Time when session was established. NULL 値は許可されません。Is not nullable.
host_namehost_name nvarchar(128)nvarchar(128) セッション固有のクライアント ワークステーションの名前。Name of the client workstation that is specific to a session. 内部セッションの場合、この値は NULL になります。The value is NULL for internal sessions. NULL 値が許可されます。Is nullable.

セキュリティに関するメモ: クライアント アプリケーションから返されたワークステーション名が、必ずしも正確なデータであるとは限りません。Security Note: The client application provides the workstation name and can provide inaccurate data. セキュリティ機能として HOST_NAME に依存することは避けてください。Do not rely upon HOST_NAME as a security feature.
program_nameprogram_name nvarchar(128)nvarchar(128) セッションを開始したクライアント プログラムの名前。Name of client program that initiated the session. 内部セッションの場合、この値は NULL になります。The value is NULL for internal sessions. NULL 値が許可されます。Is nullable.
host_process_idhost_process_id intint セッションを開始したクライアント プログラムのプロセス ID。Process ID of the client program that initiated the session. 内部セッションの場合、この値は NULL になります。The value is NULL for internal sessions. NULL 値が許可されます。Is nullable.
client_versionclient_version intint クライアントでサーバーへの接続に使用されるインターフェイスの TDS プロトコル バージョン。TDS protocol version of the interface that is used by the client to connect to the server. 内部セッションの場合、この値は NULL になります。The value is NULL for internal sessions. NULL 値が許可されます。Is nullable.
client_interface_nameclient_interface_name nvarchar(32)nvarchar(32) サーバーと通信するクライアントによって使用されているライブラリとドライバーの名前です。Name of library/driver being used by the client to communicate with the server. 内部セッションの場合、この値は NULL になります。The value is NULL for internal sessions. NULL 値が許可されます。Is nullable.
security_idsecurity_id varbinary(85)varbinary(85) ログインに関連付けられた、Microsoft Windows のセキュリティ ID。Microsoft Windows security ID associated with the login. NULL 値は許可されません。Is not nullable.
login_namelogin_name nvarchar(128)nvarchar(128) 現在セッションを実行している SQL ServerSQL Server ログイン名。SQL ServerSQL Server login name under which the session is currently executing. セッションを作成した元のログイン名については、original_login_name を参照してください。For the original login name that created the session, see original_login_name. SQL ServerSQL Server認証済みログイン名または Windows 認証済みのドメインのユーザー名。Can be a SQL ServerSQL Server authenticated login name or a Windows authenticated domain user name. NULL 値は許可されません。Is not nullable.
nt_domainnt_domain nvarchar(128)nvarchar(128) 適用対象: SQL Server 2008SQL Server 2008 から SQL Server 2017SQL Server 2017Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

セッションで Windows 認証または信頼された接続を使用している場合のクライアントの Windows ドメイン。Windows domain for the client if the session is using Windows Authentication or a trusted connection. 内部セッションまたはドメイン以外のユーザーの場合、この値は NULL になります。This value is NULL for internal sessions and non-domain users. NULL 値が許可されます。Is nullable.
nt_user_nament_user_name nvarchar(128)nvarchar(128) 適用対象: SQL Server 2008SQL Server 2008 から SQL Server 2017SQL Server 2017Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

セッションで Windows 認証または信頼された接続を使用している場合のクライアントの Windows ユーザー名。Windows user name for the client if the session is using Windows Authentication or a trusted connection. 内部セッションまたはドメイン以外のユーザーの場合、この値は NULL になります。This value is NULL for internal sessions and non-domain users. NULL 値が許可されます。Is nullable.
statusstatus nvarchar(30)nvarchar(30) セッションの状態です。Status of the session. 有効値は次のとおりです。Possible values:

実行している-現在実行中の 1 つまたは複数の要求Running - Currently running one or more requests

スリープ-現在実行されていない要求Sleeping - Currently running no requests

休止-セッションが接続プールが原因がリセットされ、ログイン前の状態になります。Dormant - Session has been reset because of connection pooling and is now in prelogin state.

接続前手続き-セッションがリソース ガバナー分類子であります。Preconnect - Session is in the Resource Governor classifier.

NULL 値は許可されません。Is not nullable.
context_infocontext_info varbinary (128)varbinary(128) セッションの CONTEXT_INFO 値。CONTEXT_INFO value for the session. 使用して、ユーザーがコンテキスト情報を設定、 SET CONTEXT_INFOステートメント。The context information is set by the user by using the SET CONTEXT_INFO statement. NULL 値が許可されます。Is nullable.
cpu_timecpu_time intint セッションで使用された CPU 時間 (ミリ秒単位)。CPU time, in milliseconds, that was used by this session. NULL 値は許可されません。Is not nullable.
memory_usagememory_usage intint セッションで使用されたメモリの 8 KB ページの数。Number of 8-KB pages of memory used by this session. NULL 値は許可されません。Is not nullable.
total_scheduled_timetotal_scheduled_time intint セッション (セッション内にある要求) の実行予定時間の合計 (ミリ秒単位)。Total time, in milliseconds, for which the session (requests within) were scheduled for execution. NULL 値は許可されません。Is not nullable.
total_elapsed_timetotal_elapsed_time intint セッションが確立されてから経過した時間 (ミリ秒単位)。Time, in milliseconds, since the session was established. NULL 値は許可されません。Is not nullable.
endpoint_idendpoint_id intint セッションに関連付けられたエンドポイント ID。ID of the Endpoint associated with the session. NULL 値は許可されません。Is not nullable.
last_request_start_timelast_request_start_time datetimedatetime セッションで要求が最後に開始された時刻。Time at which the last request on the session began. 現在実行されている要求も対象となります。This includes the currently executing request. NULL 値は許可されません。Is not nullable.
last_request_end_timelast_request_end_time datetimedatetime セッションで要求が最後に完了した時刻。Time of the last completion of a request on the session. NULL 値が許可されます。Is nullable.
readsreads bigintbigint セッション中に、セッションの要求によって実行された読み取りの数。Number of reads performed, by requests in this session, during this session. NULL 値は許可されません。Is not nullable.
writeswrites bigintbigint セッション中に、セッションの要求によって実行された書き込みの数。Number of writes performed, by requests in this session, during this session. NULL 値は許可されません。Is not nullable.
logical_readslogical_reads bigintbigint このセッションで実行された論理読み取りの数。Number of logical reads that have been performed on the session. NULL 値は許可されません。Is not nullable.
is_user_processis_user_process bitbit セッションがシステム セッションの場合は 0。0 if the session is a system session. それ以外の場合は 1 です。Otherwise, it is 1. NULL 値は許可されません。Is not nullable.
text_sizetext_size intint セッションの TEXTSIZE 設定。TEXTSIZE setting for the session. NULL 値は許可されません。Is not nullable.
languagelanguage nvarchar(128)nvarchar(128) セッションの LANGUAGE 設定。LANGUAGE setting for the session. NULL 値が許可されます。Is nullable.
date_formatdate_format nvarchar(3)nvarchar(3) セッションの DATEFORMAT 設定。DATEFORMAT setting for the session. NULL 値が許可されます。Is nullable.
date_firstdate_first smallintsmallint セッションの DATEFIRST 設定。DATEFIRST setting for the session. NULL 値は許可されません。Is not nullable.
quoted_identifierquoted_identifier bitbit セッションの QUOTED_IDENTIFIER 設定。QUOTED_IDENTIFIER setting for the session. NULL 値は許可されません。Is not nullable.
arithabortarithabort bitbit セッションの ARITHABORT 設定。ARITHABORT setting for the session. NULL 値は許可されません。Is not nullable.
ansi_null_dflt_onansi_null_dflt_on bitbit セッションの ANSI_NULL_DFLT_ON 設定。ANSI_NULL_DFLT_ON setting for the session. NULL 値は許可されません。Is not nullable.
ansi_defaultsansi_defaults bitbit セッションの ANSI_DEFAULTS 設定。ANSI_DEFAULTS setting for the session. NULL 値は許可されません。Is not nullable.
ansi_warningsansi_warnings bitbit セッションの ANSI_WARNINGS 設定。ANSI_WARNINGS setting for the session. NULL 値は許可されません。Is not nullable.
ansi_paddingansi_padding bitbit セッションの ANSI_PADDING 設定。ANSI_PADDING setting for the session. NULL 値は許可されません。Is not nullable.
ansi_nullsansi_nulls bitbit セッションの ANSI_NULLS 設定。ANSI_NULLS setting for the session. NULL 値は許可されません。Is not nullable.
concat_null_yields_nullconcat_null_yields_null bitbit セッションの CONCAT_NULL_YIELDS_NULL 設定。CONCAT_NULL_YIELDS_NULL setting for the session. NULL 値は許可されません。Is not nullable.
transaction_isolation_leveltransaction_isolation_level smallintsmallint セッションのトランザクション分離レベル。Transaction isolation level of the session.

0 = Unspecified0 = Unspecified

1 = ReadUncomitted1 = ReadUncomitted

2 = ReadCommitted2 = ReadCommitted

3 = Repeatable3 = Repeatable

4 = Serializable4 = Serializable

5 = Snapshot5 = Snapshot

NULL 値は許可されません。Is not nullable.
lock_timeoutlock_timeout intint セッションの LOCK_TIMEOUT 設定。LOCK_TIMEOUT setting for the session. 値の単位はミリ秒です。The value is in milliseconds. NULL 値は許可されません。Is not nullable.
deadlock_prioritydeadlock_priority intint セッションの DEADLOCK_PRIORITY 設定。DEADLOCK_PRIORITY setting for the session. NULL 値は許可されません。Is not nullable.
row_countrow_count bigintbigint セッションでこの時点までに返された行の数。Number of rows returned on the session up to this point. NULL 値は許可されません。Is not nullable.
prev_errorprev_error intint セッションで最後に返されたエラーの ID。ID of the last error returned on the session. NULL 値は許可されません。Is not nullable.
original_security_idoriginal_security_id varbinary(85)varbinary(85) original_login_name に関連付けられている MicrosoftMicrosoft Windows セキュリティ ID。MicrosoftMicrosoft Windows security ID that is associated with the original_login_name. NULL 値は許可されません。Is not nullable.
original_login_nameoriginal_login_name nvarchar(128)nvarchar(128) クライアントがこのセッションの作成に使用した SQL ServerSQL Server ログイン名。SQL ServerSQL Server login name that the client used to create this session. SQL ServerSQL Server 認証済みのログイン名、Windows 認証済みのドメイン ユーザー名、または包含データベースのユーザーになります。Can be a SQL ServerSQL Server authenticated login name, a Windows authenticated domain user name, or a contained database user. 最初の接続後、セッションでは暗黙的または明示的にコンテキストが切り替えられている可能性があります。Note that the session could have gone through many implicit or explicit context switches after the initial connection. たとえば場合、 EXECUTE AS使用されます。For example, if EXECUTE AS is used. NULL 値は許可されません。Is not nullable.
last_successful_logonlast_successful_logon datetimedatetime 適用対象: SQL Server 2008SQL Server 2008 から SQL Server 2017SQL Server 2017Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

現在のセッションが開始する前に、original_login_name のログオンが最後に成功した時間。Time of the last successful logon for the original_login_name before the current session started.
last_unsuccessful_logonlast_unsuccessful_logon datetimedatetime 適用対象: SQL Server 2008SQL Server 2008 から SQL Server 2017SQL Server 2017Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

現在のセッションが開始する前に、original_login_name のログオン試行が最後に失敗した時間。Time of the last unsuccessful logon attempt for the original_login_name before the current session started.
unsuccessful_logonsunsuccessful_logons bigintbigint 適用対象: SQL Server 2008SQL Server 2008 から SQL Server 2017SQL Server 2017Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

last_successful_logon と login_time の間に、original_login_name のログオン試行が失敗した回数。Number of unsuccessful logon attempts for the original_login_name between the last_successful_logon and login_time.
group_idgroup_id intint このセッションが属しているワークロード グループの ID。ID of the workload group to which this session belongs. NULL 値は許可されません。Is not nullable.
database_iddatabase_id smallintsmallint 適用対象: SQL Server 2012 (11.x)SQL Server 2012 (11.x) から SQL Server 2017SQL Server 2017Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

各セッションの現在のデータベースの ID。ID of the current database for each session.
authenticating_database_idauthenticating_database_id intint 適用対象: SQL Server 2012 (11.x)SQL Server 2012 (11.x) から SQL Server 2017SQL Server 2017Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

プリンシパルを認証するデータベースの ID。ID of the database authenticating the principal. ログインの場合、値は 0 になります。For Logins, the value will be 0. 包含データベース ユーザーの場合、値は包含データベースのデータベース ID になります。For contained database users, the value will be the database ID of the contained database.
open_transaction_countopen_transaction_count intint 適用対象: SQL Server 2012 (11.x)SQL Server 2012 (11.x) から SQL Server 2017SQL Server 2017Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

セッションごとに開いているトランザクションの数。Number of open transactions per session.
pdw_node_idpdw_node_id intint 適用対象: Azure SQL データ ウェアハウスAzure SQL Data WarehouseParallel Data WarehouseParallel Data WarehouseApplies to: Azure SQL データ ウェアハウスAzure SQL Data Warehouse, Parallel Data WarehouseParallel Data Warehouse

この配布であるノードの識別子。The identifier for the node that this distribution is on.
page_server_readspage_server_reads bigintbigint 適用対象:Azure SQL データベースのハイパー スケールApplies to: Azure SQL Database Hyperscale

サーバーのページ読み取りの数は、このセッション中に、セッションの要求によって実行します。Number of page server reads performed, by requests in this session, during this session. NULL 値は許可されません。Is not nullable.

アクセス許可Permissions

すべてのユーザーには、独自のセッション情報がわかります。Everyone can see their own session information.
SQL ServerSQL Server: 必要がありますVIEW SERVER STATEに対する権限SQL ServerSQL Serverをサーバー上のすべてのセッションを参照してください。SQL ServerSQL Server: Requires VIEW SERVER STATE permission on SQL ServerSQL Server to see all sessions on the server.
SQL DatabaseSQL Database: 必要がありますVIEW DATABASE STATEを現在のデータベースに対するすべての接続を確認します。SQL DatabaseSQL Database: Requires VIEW DATABASE STATE to see all connections to the current database. VIEW DATABASE STATE 付与することはできません、masterデータベース。VIEW DATABASE STATE cannot be granted in the master database.

コメントRemarks

ときに、共通の条件のコンプライアンス対応が有効になっているサーバー構成オプションが有効になっている場合、次の列にログオン統計値が表示されます。When the common criteria compliance enabled server configuration option is enabled, logon statistics are displayed in the following columns.

  • last_successful_logonlast_successful_logon

  • last_unsuccessful_logonlast_unsuccessful_logon

  • unsuccessful_logonsunsuccessful_logons

このオプションが有効でない場合、これらの列は NULL 値を返します。If this option is not enabled, these columns will return null values. このサーバー構成オプションを設定する方法の詳細については、次を参照してください。 enabled サーバー構成オプションの一般的な条件のコンプライアンス対応します。For more information about how to set this server configuration option, see common criteria compliance enabled Server Configuration Option.

Azure SQL Database で管理者接続は、認証済みセッションごとに 1 行に表示されます。The admin connections on Azure SQL Database will see one row per authenticated session. 結果セットに表示される"sa"セッションは、セッションのユーザーのクォータの影響を及ぼすがありません。The "sa" sessions that appear in the resultset, do not have any impact on the user quota for sessions. 管理者以外の接続には、そのデータベースのユーザー セッションに関連する情報のみ表示されます。The non-admin connections will only see information related to their database user sessions.

リレーションシップの基数Relationship Cardinalities

FromFrom 変換先To 基準/APPLYOn/Apply リレーションシップRelationship
sys.dm_exec_sessionssys.dm_exec_sessions sys.dm_exec_requestssys.dm_exec_requests session_idsession_id 一対ゼロまたは一対多One-to-zero or one-to-many
sys.dm_exec_sessionssys.dm_exec_sessions sys.dm_exec_connectionssys.dm_exec_connections session_idsession_id 一対ゼロまたは一対多One-to-zero or one-to-many
sys.dm_exec_sessionssys.dm_exec_sessions sys.dm_tran_session_transactionssys.dm_tran_session_transactions session_idsession_id 一対ゼロまたは一対多One-to-zero or one-to-many
sys.dm_exec_sessionssys.dm_exec_sessions sys.dm_exec_cursors(session_id | 0)sys.dm_exec_cursors(session_id | 0) session_id CROSS APPLYsession_id CROSS APPLY

OUTER APPLYOUTER APPLY
一対ゼロまたは一対多One-to-zero or one-to-many
sys.dm_exec_sessionssys.dm_exec_sessions sys.dm_db_session_space_usagesys.dm_db_session_space_usage session_idsession_id 一対一One-to-one

使用例Examples

A.A. サーバーに接続しているユーザーを検索するFinding users that are connected to the server

次の例では、サーバーに接続しているユーザーを検索し、各ユーザーのセッション数を返します。The following example finds the users that are connected to the server and returns the number of sessions for each user.

SELECT login_name ,COUNT(session_id) AS session_count   
FROM sys.dm_exec_sessions   
GROUP BY login_name;  

B.B. 長時間実行されているカーソルを検索するFinding long-running cursors

次の例では、特定の期間よりも長く開いているカーソル、カーソルの作成者、およびカーソルが配置されているセッションを検索します。The following example finds the cursors that have been open for more than a specific period of time, who created the cursors, and what session the cursors are on.

USE master;  
GO  
SELECT creation_time ,cursor_id   
    ,name ,c.session_id ,login_name   
FROM sys.dm_exec_cursors(0) AS c   
JOIN sys.dm_exec_sessions AS s   
   ON c.session_id = s.session_id   
WHERE DATEDIFF(mi, c.creation_time, GETDATE()) > 5;  

C.C. トランザクションが開いているアイドル状態のセッションを検索するFinding idle sessions that have open transactions

次の例では、トランザクションが開いているアイドル状態のセッションを検索します。The following example finds sessions that have open transactions and are idle. アイドル状態のセッションとは、現在要求が実行されていないセッションです。An idle session is one that has no request currently running.

SELECT s.*   
FROM sys.dm_exec_sessions AS s  
WHERE EXISTS   
    (  
    SELECT *   
    FROM sys.dm_tran_session_transactions AS t  
    WHERE t.session_id = s.session_id  
    )  
    AND NOT EXISTS   
    (  
    SELECT *   
    FROM sys.dm_exec_requests AS r  
    WHERE r.session_id = s.session_id  
    );  

D.D. クエリ専用接続についての情報を検索するFinding information about a queries own connection

クエリ専用接続についての情報を収集する典型的なクエリ。Typical query to gather information about a queries own connection.

SELECT   
    c.session_id, c.net_transport, c.encrypt_option,   
    c.auth_scheme, s.host_name, s.program_name,   
    s.client_interface_name, s.login_name, s.nt_domain,   
    s.nt_user_name, s.original_login_name, c.connect_time,   
    s.login_time   
FROM sys.dm_exec_connections AS c  
JOIN sys.dm_exec_sessions AS s  
    ON c.session_id = s.session_id  
WHERE c.session_id = @@SPID;  

参照See Also

動的管理ビューと動的管理関数 (Transact-SQL) Dynamic Management Views and Functions (Transact-SQL)
実行関連の動的管理ビューおよび関数 (Transact-SQL)Execution Related Dynamic Management Views and Functions (Transact-SQL)