sys.dm_exec_connections(Transact-SQL)
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics Microsoft Fabric의 SQL 분석 엔드포인트 Microsoft Fabric의 웨어하우스
데이터베이스 엔진의 이 인스턴스에 설정된 연결에 대한 정보와 각 연결의 세부 정보를 반환합니다. SQL Server 및 Azure SQL Managed Instance에 대한 서버 전체 연결 정보를 반환합니다. Azure SQL Database의 현재 데이터베이스에 대한 연결 정보를 반환합니다. Azure SQL Database의 탄력적 풀에 있는 데이터베이스에 대해 동일한 탄력적 풀에 있는 모든 데이터베이스에 대한 연결 정보를 반환합니다 .
참고 항목
Azure Synapse Analytics 또는 PDW(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 | 이 연결과 연관된 가장 최근 요청의 세션 ID를 나타냅니다. (SOAP 연결은 다른 세션에서 다시 사용할 수 있습니다.) null 허용입니다. |
connect_time | 날짜/시간 | 연결이 설정된 타임스탬프입니다. Null을 허용하지 않습니다. |
net_transport | nvarchar(40) | MARS를 사용하는 경우 MARS 논리 세션과 연결된 각 추가 연결에 대한 세션을 반환합니다. 참고: 이 연결에서 사용되는 물리적 전송 프로토콜에 대해 설명합니다. Null을 허용하지 않습니다. |
protocol_type | nvarchar(40) | 페이로드의 프로토콜 유형을 지정합니다. 현재 TDS("TSQL"), "SOAP" 및 "데이터베이스 미러링"을 구분합니다. Null을 허용합니다. |
protocol_version | int | 이 연결과 연결된 데이터 액세스 프로토콜의 버전입니다. Null을 허용합니다. |
endpoint_id | int | 연결 유형을 설명하는 식별자입니다. 뷰 endpoint_id 를 쿼리 sys.endpoints 하는 데 사용할 수 있습니다. Null을 허용합니다. |
encrypt_option | nvarchar(40) | 이 연결에 대해 암호화가 설정되었는지 여부를 설명하는 부울 값입니다. Null을 허용하지 않습니다. HADR 미러링 엔드포인트의 경우 이 열은 항상 FALSE를 반환합니다. sys.database_mirroring_endpoints 대신 DMV를 사용하여 HADR 미러링 엔드포인트에 대한 연결이 암호화되었는지 확인합니다. |
auth_scheme | nvarchar(40) | 이 연결에 사용되는 SQL Server/Windows 인증 체계를 지정합니다. Null을 허용하지 않습니다. |
node_affinity | smallint | 이 연결에 선호도가 있는 메모리 노드를 식별합니다. Null을 허용하지 않습니다. |
num_reads | int | 이 연결을 통해 발생한 바이트 읽기 수입니다. Null을 허용합니다. |
num_writes | int | 이 연결을 통해 발생한 바이트 쓰기 수입니다. Null을 허용합니다. |
last_read | 날짜/시간 | 이 연결을 통해 마지막으로 읽은 타임스탬프입니다. Null을 허용합니다. |
last_write | 날짜/시간 | 이 연결을 통해 마지막 쓰기가 발생한 타임스탬프입니다. 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 Managed Instance에서는 VIEW SERVER STATE
권한이 필요합니다.
Azure SQL Database Basic, S0 및 S1 서비스 목표 및 탄력적 풀의 데이터베이스에는 서버 관리자 계정, Microsoft Entra 관리자 계정 또는 서버 역할의 ##MS_ServerStateReader##
멤버 자격이 필요합니다. 다른 모든 SQL Database 서비스 목표에 대해서는 데이터베이스에 대한 VIEW DATABASE STATE
권한 또는 ##MS_ServerStateReader##
서버 역할의 멤버 자격이 필요합니다.
SQL Server 2022 이상에 대한 사용 권한
서버에 대한 VIEW SERVER PERFORMANCE STATE 권한이 필요합니다.
물리적 조인
관계 카디널리
가장 일반적으로 각 행에 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
행 1개, MARS 논리 세션마다 한 행이 있을 수 있습니다. 세션으로 설정되는 열의 값으로 후자의 행을 net_transport
식별할 수 있습니다. 이러한 연결의 경우 열의 sys.dm_exec_connections
값 connection_id
은 진행 중인 MARS 요청에 대한 열의 sys.dm_exec_requests
값 connection_id
과 일치합니다.
예제
다음 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;
다음 단계
다음 문서에서 관련 개념에 대해 자세히 알아보세요.