sys.dm_exec_sessions (Transact-SQL)
Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Управляемый экземпляр SQL Azure Конечная точка аналитики аналитики Synapse Analytics Analytics (PDW)SQL Analyticsв Microsoft FabricХранилище в Microsoft Fabric
Возвращает одну строку на сеанс с проверкой подлинности в SQL Server. sys.dm_exec_sessions
— это представление область сервера, отображающее сведения обо всех активных подключениях пользователей и внутренних задачах. Эти сведения включают в себя данные о версии клиента, имени клиентской программы, времени входа, имени входа пользователя, текущих настройках сеанса и т.д. Используется sys.dm_exec_sessions
для первого просмотра текущей загрузки системы и определения интересующего сеанса, а затем получения дополнительных сведений об этом сеансе с помощью других динамических административных представлений или динамических функций управления.
sys.dm_exec_sessions
sys.dm_exec_requests
Представление sys.dm_exec_connections
совместимости системы sys.sysprocesses и динамические административные представления сопоставляются с устаревшим представлением совместимости системы.
Примечание.
Чтобы вызвать это из выделенного пула SQL в Azure Synapse Analytics или Analytics Platform System (PDW), см . sys.dm_pdw_nodes_exec_sessions. Для бессерверного пула SQL или Microsoft Fabric используется sys.dm_exec_sessions
.
Имя столбца | Тип данных | Описание и сведения о конкретной версии |
---|---|---|
session_id | smallint | Идентификатор сеанса, связанный со всеми активными первичными соединениями. Не допускает значения NULL. |
login_time | datetime | Время подключения сеанса. Не допускает значения NULL. Сеансы, которые не выполнили вход в систему, во время запроса этого динамического административного представления отображаются с временем 1900-01-01 входа. |
host_name | nvarchar(128) | Имя клиентской рабочей станции, указанное в сеансе. Для внутреннего сеанса это значение равно NULL. Допускает значение NULL. Примечание по безопасности. Клиентское приложение предоставляет имя рабочей станции и может предоставлять неточные данные. Не полагаться на HOST_NAME как функцию безопасности. |
program_name | nvarchar(128) | Имя клиентской программы, которая инициировала сеанс. Для внутреннего сеанса это значение равно NULL. Допускает значение NULL. |
host_process_id | int | Идентификатор процесса клиентской программы, которая инициировала сеанс. Для внутреннего сеанса это значение равно NULL. Допускает значение NULL. |
client_version | int | Версия TDS-протокола интерфейса, который используется клиентом для подключения к серверу. Для внутреннего сеанса это значение равно NULL. Допускает значение NULL. |
client_interface_name | nvarchar(32) | Имя библиотеки или драйвера, используемого клиентом для взаимодействия с сервером. Для внутреннего сеанса это значение равно NULL. Допускает значение NULL. |
security_id | varbinary(85) | Идентификатор безопасности Microsoft Windows, связанный с именем входа. Не допускает значения NULL. |
login_name | nvarchar(128) | Имя входа SQL Server, под которым выполняется текущий сеанс. Исходный имя входа, создавший сеанс, см. в разделе original_login_name . Может быть именем пользователя домена, прошедшим проверку подлинности SQL Server, или именем пользователя домена, прошедшим проверку подлинности Windows. Не допускает значения NULL. |
nt_domain | nvarchar(128) | Область применения: SQL Server 2008 (10.0.x) и более поздних версий Домен Windows для клиента, если во время сеанса применяется проверка подлинности Windows или доверительное соединение. Для внутренних сеансов и пользователей, не принадлежащих к домену, это значение равно NULL. Допускает значение NULL. |
nt_user_name | nvarchar(128) | Область применения: SQL Server 2008 (10.0.x) и более поздних версий Имя пользователя Windows для клиента, если во время сеанса используется проверка подлинности Windows или доверительное соединение. Для внутренних сеансов и пользователей, не принадлежащих к домену, это значение равно NULL. Допускает значение NULL. |
статус | nvarchar(30) | Состояние сеанса. Возможные значения: Выполнение — в настоящее время выполняется один или несколько запросов Спящий режим — в настоящее время выполнение запросов не выполняется Dormant — сеанс был сброшен из-за пула подключений и теперь находится в состоянии предварительной записи. Перед подключением — сеанс находится в классификаторе регулятора ресурсов. Не допускает значения NULL. |
context_info | varbinary(128) | Значение параметра CONTEXT_INFO для сеанса. Сведения о контексте задаются пользователем с помощью инструкции SET CONTEXT_INFO . Допускает значение NULL. |
cpu_time | int | Время ЦП в миллисекундах, используемое этим сеансом. Не допускает значения NULL. |
memory_usage | int | Количество 8-килобайтовых страниц памяти, используемых данным сеансом. Не допускает значения NULL. |
total_scheduled_time | int | Общее время, назначенное данному сеансу (включая его вложенные запросы) для исполнения, в миллисекундах. Не допускает значения NULL. |
total_elapsed_time | int | Время, прошедшее с момента установки сеанса в миллисекундах. Не допускает значения NULL. |
endpoint_id | int | Идентификатор конечной точки, связанный с сеансом. Не допускает значения NULL. |
last_request_start_time | datetime | Время, когда начался последний запрос данного сеанса. Это может быть запрос, выполняющийся в данный момент. Не допускает значения NULL. |
last_request_end_time | datetime | Время завершения последнего запроса в рамках данного сеанса. Допускает значение NULL. |
reads | bigint | Количество операций чтения, выполненных запросами данного сеанса. Не допускает значения NULL. |
writes | bigint | Количество операций записи, выполненных запросами данного сеанса. Не допускает значения NULL. |
logical_reads | bigint | Количество логических операций чтения, выполняемых запросами в этом сеансе, во время этого сеанса. Не допускает значения NULL. |
is_user_process | bit | 0, если сеанс является системным. В противном случае значение равно 1. Не допускает значения NULL. |
text_size | int | Значение параметра TEXTSIZE для данного сеанса. Не допускает значения NULL. |
language | nvarchar(128) | Значение параметра LANGUAGE для данного сеанса. Допускает значение NULL. |
date_format | nvarchar(3) | Значение параметра DATEFORMAT для данного сеанса. Допускает значение NULL. |
date_first | smallint | Значение параметра DATEFIRST для данного сеанса. Не допускает значения NULL. |
quoted_identifier | bit | Значение параметра QUOTED_IDENTIFIER для данного сеанса. Не допускает значения NULL. |
arithabort | bit | Значение параметра ARITHABORT для данного сеанса. Не допускает значения NULL. |
ansi_null_dflt_on | bit | Значение параметра ANSI_NULL_DFLT_ON для данного сеанса. Не допускает значения NULL. |
ansi_defaults | bit | Значение параметра ANSI_DEFAULTS для данного сеанса. Не допускает значения NULL. |
ansi_warnings | bit | Значение параметра ANSI_WARNINGS для данного сеанса. Не допускает значения NULL. |
ansi_padding | bit | Значение параметра ANSI_PADDING для данного сеанса. Не допускает значения NULL. |
ansi_nulls | bit | Значение параметра ANSI_NULLS для данного сеанса. Не допускает значения NULL. |
concat_null_yields_null | bit | Значение параметра CONCAT_NULL_YIELDS_NULL для данного сеанса. Не допускает значения NULL. |
transaction_isolation_level | smallint | Уровень изоляции транзакции данного сеанса: 0 = не указан; 1 = ReadUncommitted 2 = читать зафиксированные; 3 = RepeatableRead 4 = сериализуемые; 5 = моментальный снимок. Не допускает значения NULL. |
lock_timeout | int | Значение параметра LOCK_TIMEOUT для данного сеанса. Значение указывается в миллисекундах. Не допускает значения NULL. |
deadlock_priority | int | Значение параметра DEADLOCK_PRIORITY для данного сеанса. Не допускает значения NULL. |
row_count | bigint | Количество строк, возвращенных сеансом на текущий момент времени. Не допускает значения NULL. |
prev_error | int | Идентификатор последней ошибки, возвращенной в данном сеансе. Не допускает значения NULL. |
original_security_id | varbinary(85) | Идентификатор безопасности Microsoft Windows, связанный original_login_name с ним. Не допускает значения NULL. |
original_login_name | nvarchar(128) | Имя входа SQL Server, используемое клиентом для создания этого сеанса. Может быть именем входа, прошедшим проверку подлинности SQL Server, именем пользователя домена, прошедшим проверку подлинности Windows, или пользователем автономной базы данных. Сеанс мог пройти через множество неявных или явных переключений контекста после первоначального подключения. Например, если используется EXECUTE AS . Не допускает значения NULL. |
last_successful_logon | datetime | Область применения: SQL Server 2008 (10.0.x) и более поздних версий Время последнего успешного входа в систему для имени original_login_name до запуска текущего сеанса. |
last_unsuccessful_logon | datetime | Область применения: SQL Server 2008 (10.0.x) и более поздних версий Время последнего неуспешного входа в систему для имени original_login_name до запуска текущего сеанса. |
unsuccessful_logons | bigint | Область применения: SQL Server 2008 (10.0.x) и более поздних версий Число неудачных попыток входа между original_login_name last_successful_logon и login_time . |
group_id | int | Идентификатор группы рабочей нагрузки, которой принадлежит этот сеанс. Не допускает значения NULL. |
database_id | smallint | Область применения: SQL Server 2012 (11.x) и более поздних версий Идентификатор текущей базы данных для каждого сеанса. В База данных SQL Azure значения уникальны в одной базе данных или эластичном пуле, но не в логическом сервере. |
authenticating_database_id | int | Область применения: SQL Server 2012 (11.x) и более поздних версий Идентификатор базы данных, выполняющей проверку подлинности участника. Для входа значение будет равно 0. Для пользователей автономной базы данных это значение будет содержать идентификатор автономной базы данных. |
open_transaction_count | int | Область применения: SQL Server 2012 (11.x) и более поздних версий Количество открытых транзакций на сеанс. |
pdw_node_id | int | Область применения: Azure Synapse Analytics, Analytics Platform System (PDW) Идентификатор узла, на который находится данное распределение. |
page_server_reads | bigint | Область применения: уровень службы "Гипермасштабирование" в Базе данных SQL Azure Количество операций чтения сервера страниц, выполняемых запросами в этом сеансе, во время этого сеанса. Не допускает значения NULL. |
Разрешения
Каждый может просматривать свои собственные сведения о сеансе.
SQL Server: требуется VIEW SERVER STATE
разрешение на SQL Server, чтобы просмотреть все сеансы на сервере.
База данных SQL: Требуется VIEW DATABASE STATE
просмотреть все подключения к текущей базе данных. VIEW DATABASE STATE
невозможно предоставить в master
базе данных.
Разрешения для SQL Server 2022 и более поздних версий
Требуется разрешение VIEW SERVER PERFORMANCE STATE на сервере.
Замечания
Если включен параметр конфигурации сервера с поддержкой распространенных условий, статистика входа отображается в следующих столбцах.
last_successful_logon
last_unsuccessful_logon
unsuccessful_logons
Если этот параметр не включен, эти столбцы возвращают значения NULL. Дополнительные сведения о настройке этого параметра конфигурации сервера см . в разделе стандартных параметров конфигурации сервера с поддержкой соответствия критериям.
Подключения администратора на База данных SQL Azure отображают одну строку для каждого сеанса проверки подлинности. Сеансы sa, которые отображаются в наборе результатов, не влияют на квоту пользователя для сеансов. Подключения, не относящиеся к администратору, будут видеть только сведения, связанные с сеансами пользователей базы данных.
Из-за различий в том, как они записываются, open_transaction_count
может не соответствовать sys.dm_tran_session_transactions
.open_transaction_count
.
Связи карта inalities
С дт. | Кому | Подключить/Применить | Отношение |
---|---|---|---|
sys.dm_exec_sessions |
sys.dm_exec_requests | session_id | Один к нулю или один ко многим. |
sys.dm_exec_sessions |
sys.dm_exec_connections | session_id | Один к нулю или один ко многим. |
sys.dm_exec_sessions |
sys.dm_tran_session_transactions | session_id | Один к нулю или один ко многим. |
sys.dm_exec_sessions |
sys.dm_exec_cursors (session_id | 0) | session_id CROSS APPLY OUTER APPLY |
Один к нулю или один ко многим. |
sys.dm_exec_sessions |
sys.dm_db_session_space_usage | session_id | Взаимно-однозначный |
Примеры
А. Поиск пользователей, подключенных к серверу
В следующем примере производится поиск пользователей, подключенных к серверу, и возвращаются сведения о числе сеансов для каждого пользователя.
SELECT login_name,
COUNT(session_id) AS session_count
FROM sys.dm_exec_sessions
GROUP BY login_name;
B. Поиск длительных курсоров
В следующем примере производится поиск курсоров, открытых дольше заданного периода времени, определяются их создатели и соответствующие им сеансы.
USE master;
GO
SELECT creation_time,
cursor_id,
name,
c.session_id,
login_name
FROM sys.dm_exec_cursors(0) AS c
INNER JOIN sys.dm_exec_sessions AS s
ON c.session_id = s.session_id
WHERE DATEDIFF(mi, c.creation_time, GETDATE()) > 5;
GO
C. Поиск бездействующих сеансов с открытыми транзакциями
В следующем производится поиск сеансов, имеющих открытые транзакции, но при этом бездействующих. Бездействующим сеансом считается сеанс, который в настоящий момент не выполняет запросов.
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. Поиск сведений о собственном подключении запросов
В следующем примере собираются сведения о собственном подключении запроса:
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
INNER JOIN sys.dm_exec_sessions AS s
ON c.session_id = s.session_id
WHERE c.session_id = @@SPID;
Следующие шаги
Кері байланыс
https://aka.ms/ContentUserFeedback.
Жақында қолжетімді болады: 2024 жыл бойы біз GitHub Issues жүйесін мазмұнға арналған кері байланыс механизмі ретінде біртіндеп қолданыстан шығарамыз және оны жаңа кері байланыс жүйесімен ауыстырамыз. Қосымша ақпаратты мұнда қараңыз:Жіберу және пікірді көру