Поделиться через


sys.dm_exec_connections (Transact-SQL)

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure конечную точку аналитики SQL Azure Synapse Analytics в хранилище Microsoft Fabric в Microsoft Fabric

Возвращает сведения о подключениях, установленных к этому экземпляру ядра СУБД, и сведения о каждом подключении. Возвращает сведения о подключении сервера для SQL Server и Управляемый экземпляр SQL Azure. Возвращает сведения о подключении для текущей базы данных в База данных SQL Azure. Возвращает сведения о подключении для всех баз данных в одном эластичном пуле для баз данных в эластичных пулах в База данных SQL Azure.

Примечание.

Чтобы вызвать это из выделенного пула SQL в Azure Synapse Analytics или Analytics Platform System (PDW), см . sys.dm_pdw_exec_connections (Transact-SQL). Для бессерверного пула SQL или Microsoft Fabric используется sys.dm_exec_connections.

Имя столбца Тип данных Description
session_id int Идентифицирует сеанс, связанный с данным соединением. Допускает значение NULL.
most_recent_session_id int Представляет собой идентификатор сеанса самого последнего запроса, связанного с данным соединением. (Соединения SOAP можно повторно использовать другим сеансом.) Допускает значение NULL.
connect_time datetime Метка времени установления соединения. Не допускает значение 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 административное представление вместо того, чтобы проверить, шифруются ли подключения к конечной точке зеркального отображения HADR.
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.

В База данных SQL Azure этот столбец всегда возвращает значение NULL.
local_net_address varchar(48) IP-адрес сервера, с которым установлено данное соединение. Доступен только для соединений, которые в качестве транспорта данных используют протокол TCP. Допускает значение NULL.

В База данных SQL Azure этот столбец всегда возвращает значение NULL.
local_tcp_port int TCP-порт сервера, если соединение использует протокол TCP. Допускает значение NULL.

В База данных SQL Azure этот столбец всегда возвращает значение 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.

Для целей службы База данных SQL Azure Basic, S0 и S1, а также для баз данных в эластичных пулах, учетной записи администратора сервера, учетной записи администратора Microsoft Entra или членства в ##MS_ServerStateReader## роли сервера требуется. Для всех остальных целей обслуживания базы данных SQL требуется разрешение VIEW DATABASE STATE в базе данных или членство в роли сервера ##MS_ServerStateReader##.

Разрешения для SQL Server 2022 и более поздних версий

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

Физические соединения

Схема физических соединений для sys.dm_exec_connections.

Кратности связей

Первый элемент Второй элемент Отношение
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. Последние строки можно определить по значению в столбце, заданному net_transport для сеанса. Для этих подключений значение в connection_id столбце sys.dm_exec_connections соответствует значению в connection_id столбце sys.dm_exec_requests запросов MARS.

Примеры

Следующий запрос 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;  

Следующие шаги

Дополнительные сведения о связанных понятиях см. в следующих статьях: