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

Область применения:✅ конечная точка аналитики SQL и хранилище в Microsoft Fabric

Используйте существующие динамические административные представления (DMV) для мониторинга состояния подключения, сеанса и запроса в Microsoft Fabric. Дополнительные сведения о средствах и методах выполнения запросов T-SQL см. в статье "Запрос хранилища".

В этом руководстве описано, как отслеживать выполняемые SQL-запросы с помощью динамических административных представлений (DMV).

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

Три динамических административных представления предоставляют актуальные сведения о жизненном цикле SQL-запросов:

  • sys.dm_exec_connections возвращает сведения о каждом соединении между хранилищем и подсистемой.
  • sys.dm_exec_sessions возвращает сведения о каждом сеансе, прошедшем проверку подлинности между элементом и подсистемой.
  • sys.dm_exec_requests возвращает сведения о каждом активном запросе в сеансе.

Вместе эти динамические административные представления помогают ответить на такие вопросы:

  • Кто проводит сеанс?
  • Когда начался сеанс?
  • Каковы идентификаторы подключения к хранилищу данных и сеанса, выполняющего запрос?
  • Сколько запросов активно выполняется?
  • Какие запросы выполняются долго?

Необходимые условия

  • Рабочая область с активной емкостью Fabric.
  • Существующую конечную точку хранилища или аналитики SQL.
  • Средство запроса T-SQL, например редактор sql-запросов или SQL Server Management Studio (SSMS).
  • Разрешения на запрос динамических административных представлений (DMV) и управление сеансами.

Необходимые разрешения для запроса динамических административных представлений и управления сеансами

  • Администратор рабочей области Admin может выполнять все три динамических административных представления (sys.dm_exec_connections, sys.dm_exec_sessions и sys.dm_exec_requests) и просматривать сведения о сеансах, подключениях и запросах для всех пользователей в рабочей области.
  • Участник рабочей области с ролью Member, Contributor или Viewer может выполнять sys.dm_exec_sessions и sys.dm_exec_requests, а также видеть только свои сеансы и запросы в хранилище. Эти роли не могут выполнять sys.dm_exec_connections.
  • Только администратор рабочей области может запустить KILL команду, чтобы остановить сеанс.

Найти подключения и сеансы хранилища данных

Объедините 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;

Определите и завершите долго выполняющийся запрос

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

  1. Перечислить активные запросы на склад, упорядоченный по времени выполнения каждого из них с момента поступления:

    SELECT request_id, session_id, start_time, total_elapsed_time
    FROM sys.dm_exec_requests
    WHERE status = 'running'
    ORDER BY total_elapsed_time DESC;
    
  2. Найдите пользователя, который запустил сеанс, содержащий длительный запрос. Замените <session_id> на значение session_id с предыдущего шага:

    SELECT login_name
    FROM sys.dm_exec_sessions
    WHERE session_id = <session_id>;
    
  3. При необходимости отмените сеанс и выполните откат, выполнив команду KILL с параметром session_id:

    KILL <session_id>;
    

    Например, чтобы остановить сеанс 101:

    KILL 101;
    

Пошаговое руководство по диагностике и разрешению блокировки запросов см. в статье "Устранение неполадок с блокировкой запросов в Fabric Data Warehouse".