sys.dm_exec_connections (Transact-SQL)
適用于: Microsoft Fabric 中 Microsoft Fabric
倉儲中的 SQL Server
Azure SQL Database
Azure SQL 受控實例
Azure Synapse Analytics
SQL 端點
傳回與這個資料庫引擎實例建立的連接相關資訊,以及每個連接的詳細資料。 傳回 SQL Server 和 Azure SQL 受控實例的伺服器範圍連線資訊。 傳回 Azure SQL Database 中目前資料庫的連線資訊。 針對 Azure SQL Database 中彈性 集區中的 資料庫,傳回相同彈性集區中所有資料庫的連線資訊。
注意
若要從 Azure Synapse Analytics 或 Analytics Platform System 中的專用 SQL 集區呼叫此專案,請參閱 sys.dm_pdw_exec_connections (Transact-SQL) 。 對於無伺服器 SQL 集區或 Microsoft Fabric,請使用 sys.dm_exec_connections
。
資料行名稱 | 資料類型 | 描述 |
---|---|---|
session_id | int | 識別與此連線相關聯的會話。 可為 Null。 |
most_recent_session_id | int | 表示與這個連接相關聯之最近要求的會話識別碼。 (SOAP 連線可以由另一個會話重複使用。可為 Null。 |
connect_time | datetime | 建立連接時的時間戳記。 不可為 Null。 |
net_transport | nvarchar(40) | 使用 MARS 時,會針對與 MARS 邏輯會話相關聯的每個其他連線傳回 Session 。 注意: 描述此連線所使用的實體傳輸通訊協定。 不可為 Null。 |
protocol_type | nvarchar(40) | 指定承載的通訊協定類型。 它目前區分 TDS (「TSQL」、「SOAP」 和 「Database Mirroring」。 可為 Null。 |
protocol_version | int | 與此連線相關聯的資料存取通訊協定版本。 可為 Null。 |
endpoint_id | int | 描述其連線類型的識別碼。 這 endpoint_id 可用來查詢 sys.endpoints 檢視。 可為 Null。 |
encrypt_option | nvarchar(40) | 布林值,描述是否為此連線啟用加密。 不可為 Null。 |
auth_scheme | nvarchar(40) | 指定與這個連線搭配使用的 SQL Server/Windows 驗證配置。 不可為 Null。 |
node_affinity | smallint | 識別這個連接具有親和性的記憶體節點。 不可為 Null。 |
num_reads | int | 透過此連線發生的位元組讀取數目。 可為 Null。 |
num_writes | int | 透過此連線發生的位元組寫入數目。 可為 Null。 |
last_read | datetime | 上次讀取時發生于此連線時的時間戳記。 可為 Null。 |
last_write | datetime | 上次寫入時發生于此連線的時間戳記。 可為 Null。 |
net_packet_size | int | 用於資訊和資料傳輸的網路封包大小。 可為 Null。 |
client_net_address | varchar(48) | 連線到此伺服器的用戶端主機位址。 可為 Null。 |
client_tcp_port | int | 與這個連線相關聯的用戶端電腦上的埠號碼。 可為 Null。 在 Azure SQL Database 中,此資料行一律會傳回 Null。 |
local_net_address | varchar(48) | 表示此連線目標伺服器上的 IP 位址。 僅適用于使用 TCP 傳輸提供者的連線。 可為 Null。 在 Azure SQL Database 中,此資料行一律會傳回 Null。 |
local_tcp_port | int | 表示如果此連線是使用 TCP 傳輸的連線,則此連線的目標伺服器 TCP 埠。 可為 Null。 在 Azure SQL Database 中,此資料行一律會傳回 Null。 |
connection_id | uniqueidentifier | 以唯一方式識別每個連線。 不可為 Null。 |
parent_connection_id | uniqueidentifier | 識別 MARS 會話所使用的主要連線。 可為 Null。 |
most_recent_sql_handle | varbinary(64) | 在此連接上執行之最後一個要求的 SQL 控制碼。 資料行一律與資料 most_recent_sql_handle most_recent_session_id 行同步。 可為 Null。 |
pdw_node_id | int | 適用於:Azure Synapse Analytics、Analytics Platform System (PDW) 此散發節點的識別碼。 |
權限
在 SQL Server 和 SQL 受控執行個體上,需要 VIEW SERVER STATE
權限。
在 Azure SQL Database Basic 、 S0 和 S1 服務目標上,以及彈性集 區中的 資料庫, 需要伺服器管理員 帳戶、 Azure Active Directory 系統管理員 帳戶或伺服器角色 的成員 ##MS_ServerStateReader##
資格。 在所有其他 SQL Database 服務目標上,需要資料庫的 VIEW DATABASE STATE
權限或 ##MS_ServerStateReader##
伺服器角色的成員資格。
SQL Server 2022 及更新版本的權限
需要伺服器上的 VIEW SERVER PERFORMANCE STATE 權限。
實體聯結
關聯性基數
第一個專案 | 第二個專案 | 關聯性 |
---|---|---|
sys.dm_exec_sessions 。session_id |
sys.dm_exec_connections.session_id |
一對零或一對多 |
sys.dm_exec_requests。connection_id |
sys.dm_exec_connections.connection_id |
多對一 |
sys.dm_broker_connections。connection_id |
sys.dm_exec_connections.connection_id |
一對一 |
最常見的是,針對 中的每個資料列,在 中 sys.dm_exec_connections
sys.dm_exec_sessions
都有單一相符的資料列。 不過,在某些情況下,例如系統內部會話或 Service Broker 啟用程式,在 中 sys.dm_exec_sessions
可能有一個資料列沒有相符的資料 sys.dm_exec_connections
列。
使用 MARS 時,中資料列可能會 sys.dm_exec_connections
有多個資料列 sys.dm_exec_sessions
、父連接一個資料列,以及每個 MARS 邏輯會話的一個資料列。 後一個資料列可由設定為 Session 的資料行中的 net_transport
值來識別。 針對這些連線,資料行 sys.dm_exec_connections
中的 connection_id
值會比對進行中 MARS 要求之 資料行中的 connection_id
sys.dm_exec_requests
值。
範例
下列 Transact-SQL 查詢會收集查詢本身連線的相關資訊。
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;
下一步
在下列文章中深入了解相關概念:
意見反應
提交並檢視相關的意見反應