Мониторинг подключений, сеансов и запросов с помощью динамических административных представлений

Область применения: конечная точка аналитики 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;

Screenshot showing the results of 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 команды.