Мониторинг подключений, сеансов и запросов с помощью динамических административных представлений
Область применения:✅ конечная точка аналитики SQL и хранилище в Microsoft Fabric
Вы можете использовать существующие динамические административные представления (DMV) для мониторинга состояния подключения, сеанса и запроса в Microsoft Fabric. Дополнительные сведения о средствах и методах выполнения запросов T-SQL см. в статье "Запрос хранилища".
Мониторинг подключений, сеансов и запросов с помощью динамических представлений жизненного цикла запросов
Для текущей версии существует три динамических административных представления (динамических административных представлений), предоставляемых для получения аналитических сведений о жизненном цикле динамических запросов SQL.
- sys.dm_exec_connections
- Возвращает сведения о каждом соединении, установленном между хранилищем и подсистемой.
- sys.dm_exec_sessions
- Возвращает сведения о каждом сеансе, прошедшем проверку подлинности между элементом и подсистемой.
- sys.dm_exec_requests
- Возвращает сведения о каждом активном запросе в сеансе.
Эти три динамических административных представления предоставляют подробные сведения о следующих сценариях:
- Кто является пользователем, выполняющим сеанс?
- Когда был запущен сеанс пользователем?
- Какой идентификатор подключения к хранилищу данных и сеансу, выполняющего запрос?
- Сколько запросов активно выполняется?
- Какие запросы выполняются долго?
В этом руководстве описано, как отслеживать выполняемые SQL-запросы с помощью динамических административных представлений (DMV).
Примеры запросов dmV
В следующем примере запросы для поиска всех сеансов sys.dm_exec_sessions
, выполняемых в данный момент.
SELECT *
FROM sys.dm_exec_sessions;
Поиск связи между подключениями и сеансами
В следующем примере выполняется соединение sys.dm_exec_connections
и sys.dm_exec_sessions
связь между активным сеансом в определенном соединении.
SELECT connections.connection_id,
connections.connect_time,
sessions.session_id, sessions.login_name, sessions.login_time, sessions.status
FROM sys.dm_exec_connections AS connections
INNER JOIN sys.dm_exec_sessions AS sessions
ON connections.session_id=sessions.session_id;
Определение и убийство длительного запроса
Этот первый запрос определяет список длительных запросов в порядке, в котором запрос занимает самую длину после его поступления.
SELECT request_id, session_id, start_time, total_elapsed_time
FROM sys.dm_exec_requests
WHERE status = 'running'
ORDER BY total_elapsed_time DESC;
Второй запрос показывает, какой пользователь выполнил сеанс с длительным запросом.
SELECT login_name
FROM sys.dm_exec_sessions
WHERE 'session_id' = 'SESSION_ID WITH LONG-RUNNING QUERY';
В третьем запросе показано, как использовать команду KILL в session_id
долго выполняющемся запросе.
KILL 'SESSION_ID WITH LONG-RUNNING QUERY'
Например.
KILL '101'
Разрешения
- Администратор имеет разрешения на выполнение всех трех динамических административных представлений (
sys.dm_exec_connections
,sys.dm_exec_sessions
, )sys.dm_exec_requests
для просмотра собственных и других сведений в рабочей области. - Участник, участник и средство просмотра могут выполнять
sys.dm_exec_sessions
иsys.dm_exec_requests
просматривать собственные результаты в хранилище, но не имеет разрешения на выполнениеsys.dm_exec_connections
. - Только администратор имеет разрешение на выполнение
KILL
команды.