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


sys.dm_exec_requests (Transact-SQL)

Возвращает сведения о каждом из запросов, выполняющихся в SQL Server.

ПримечаниеПримечание

Чтобы выполнить код, внешний по отношению к SQL Server (например, расширенную хранимую процедуру или распределенный запрос), поток должен выйти из-под управления планировщика, работающего в режиме без вытеснения. Для этого исполнитель переходит в режим с вытеснением. Значения времени, возвращаемые этим динамическим административным представлением, не включают время, затраченное в режиме с вытеснением.

Имя столбца

Тип данных

Описание

session_id

smallint

Идентификатор сеанса, к которому относится данный запрос. Не допускает значение NULL.

request_id

int

Идентификатор запроса. Уникален в контексте сеанса. Не допускает значение NULL.

start_time

datetime

Временная метка поступления запроса. Не допускает значение NULL.

status

nvarchar(30)

Состояние запроса. Может иметь одно из следующих значений:

  • Объяснение

  • Работает

  • Готов к выполнению

  • В режиме ожидания

  • Приостановлено

Не допускает значение NULL.

command

nvarchar(16)

Тип выполняемой в данный момент команды. Основные типы команд:

  • SELECT;

  • INSERT;

  • UPDATE;

  • DELETE;

  • BACKUP LOG;

  • BACKUP DB;

  • DBCC;

  • WAITFOR.

Текст запроса можно получить при помощи функции sys.dm_exec_sql_text, передав ей значение столбца sql_handle. Внутренние системные процессы устанавливают команду в соответствии с выполняемой задачей. Например:

  • LOCK MONITOR;

  • CHECKPOINTLAZY;

  • WRITER.

Не допускает значение NULL.

sql_handle

varbinary(64)

Хэш-карта текста SQL-запроса. Не допускает значение NULL.

statement_start_offset

int

Количество символов в выполняемом в настоящий момент пакете или хранимой процедуре, в которых запущена текущая инструкция. Может применяться вместе с функциями динамического управления sql_handle, statement_end_offset и sys.dm_exec_sql_text для извлечения исполняемой в настоящий момент инструкции по запросу. Допускает значение NULL.

statement_end_offset

int

Количество символов в выполняемом в настоящий момент пакете или хранимой процедуре, в которых завершилась текущая инструкция. Может применяться вместе с функциями динамического управления sql_handle, statement_end_offset и sys.dm_exec_sql_text для извлечения исполняемой в настоящий момент инструкции по запросу. Допускает значение NULL.

plan_handle

varbinary(64)

Хэш-карта плана выполнения SQL. Допускает значение NULL.

database_id

smallint

Идентификатор базы данных, к которой выполняется запрос. Не допускает значение NULL.

user_id

int

Идентификатор пользователя, отправившего данный запрос. Не допускает значение NULL.

connection_id

uniqueidentifier

Идентификатор соединения, по которому поступил запрос. Допускает значение NULL.

blocking_session_id

smallint

Идентификатор сеанса, блокирующего данный запрос. Если этот столбец содержит значение NULL, то запрос не блокирован или сведения о сеансе блокировки недоступны (или не могут быть идентифицированы).

-2 = Блокирующий ресурс принадлежит потерянной распределенной транзакции.

-3 = Блокирующий ресурс принадлежит отложенной транзакции восстановления.

-4 = Идентификатор сеанса владельца кратковременной блокировки определить на данный момент не удалось из-за переходов между внутренними состояниями кратковременной блокировки.

wait_type

nvarchar(60)

Если запрос в настоящий момент блокирован, в столбце содержится тип ожидания. Допускает значение NULL.

wait_time

int

Если запрос в настоящий момент блокирован, в столбце содержится продолжительность текущего ожидания (в миллисекундах). Не допускает значение NULL.

last_wait_type

nvarchar(60)

Если запрос был блокирован ранее, в столбце содержится тип последнего ожидания. Не допускает значение NULL.

wait_resource

nvarchar(256)

Если запрос в настоящий момент блокирован, в столбце указан ресурс, освобождения которого ожидает запрос. Не допускает значение NULL.

open_transaction_count

int

Число транзакций, открытых для данного запроса. Не допускает значение NULL.

open_resultset_count

int

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

transaction_id

bigint

Идентификатор транзакции, в которой выполняется запрос. Не допускает значение NULL.

context_info

varbinary(128)

Значение CONTEXT_INFO сеанса. Допускает значение NULL.

percent_complete

real

Процент завершения работы для следующих команд.

  • ALTER INDEX REORGANIZE

  • параметра AUTO_SHRINK с ALTER DATABASE

  • BACKUP DATABASE

  • CREATE INDEX

  • DBCC CHECKDB

  • DBCC CHECKFILEGROUP

  • DBCC CHECKTABLE

  • DBCC INDEXDEFRAG

  • DBCC SHRINKDATABASE

  • DBCC SHRINKFILE

  • KILL (Transact-SQL)

  • RESTORE DATABASE

  • UPDATE STATISTICS

Не допускает значение NULL.

estimated_completion_time

bigint

Только для внутреннего использования. Не допускает значение NULL.

cpu_time

int

Процессорное время (в миллисекундах), затраченное на выполнение запроса. Не допускает значение NULL.

total_elapsed_time

int

Общее время, истекшее с момента поступления запроса (в миллисекундах). Не допускает значение NULL.

scheduler_id

int

Идентификатор планировщика, который планирует данный запрос. Не допускает значение NULL.

task_address

varbinary(8)

Адрес блока памяти, выделенного для задачи, связанной с этим запросом. Допускает значение NULL.

reads

bigint

Число операций чтения, выполненных данным запросом. Не допускает значение NULL.

writes

bigint

Число операций записи, выполненных данным запросом. Не допускает значение NULL.

logical_reads

bigint

Число логических операций чтения, выполненных данным запросом. Не допускает значение NULL.

text_size

int

Установка параметра TEXTSIZE для данного запроса. Не допускает значение NULL.

language

nvarchar(128)

Установка языка для данного запроса. Допускает значение NULL.

date_format

nvarchar(3)

Установка параметра DATEFORMAT для данного запроса. Допускает значение NULL.

date_first

smallint

Установка параметра DATEFIRST для данного запроса. Не допускает значение NULL.

quoted_identifier

bit

1 = Параметр QUOTED_IDENTIFIER для запроса включен (ON). В противном случае значение равно 0.

Не допускает значение NULL.

arithabort

bit

1 = Параметр ARITHABORT для запроса включен (ON). В противном случае значение равно 0.

Не допускает значение NULL.

ansi_null_dflt_on

bit

1 = Параметр ANSI_NULL_DFLT_ON для запроса включен (ON). В противном случае значение равно 0.

Не допускает значение NULL.

ansi_defaults

bit

1 = Параметр ANSI_DEFAULTS для запроса включен (ON). В противном случае значение равно 0.

Не допускает значение NULL.

ansi_warnings

bit

1 = Параметр ANSI_WARNINGS для запроса включен (ON). В противном случае значение равно 0.

Не допускает значение NULL.

ansi_padding

bit

1 = Параметр ANSI_PADDING для запроса включен (ON).

В противном случае значение равно 0.

Не допускает значение NULL.

ansi_nulls

bit

1 = Параметр ANSI_NULLS для запроса включен (ON). В противном случае значение равно 0.

Не допускает значение NULL.

concat_null_yields_null

bit

1 = Параметр CONCAT_NULL_YIELDS_NULL для запроса включен (ON). В противном случае значение равно 0.

Не допускает значение NULL.

transaction_isolation_level

smallint

Уровень изоляции, с которым создана транзакция для данного запроса. Не допускает значение NULL.

lock_timeout

int

Время ожидания блокировки для данного запроса (в миллисекундах). Не допускает значение NULL.

deadlock_priority

int

Значение параметра DEADLOCK_PRIORITY для данного запроса. Не допускает значение NULL.

row_count

bigint

Число строк, возвращенных клиенту по данному запросу. Не допускает значение NULL.

prev_error

int

Последняя ошибка, происшедшая при выполнении запроса. Не допускает значение NULL.

nest_level

int

Текущий уровень вложенности кода, выполняемого для данного запроса. Не допускает значение NULL.

granted_query_memory

int

Число страниц, выделенных для выполнения поступившего запроса. Не допускает значение NULL.

executing_managed_code

bit

Указывает, выполняет ли данный запрос в настоящее время код объекта среды CLR (например, процедуры, типа или триггера). Этот флаг установлен в течение всего времени, когда объект среды CLR находится в стеке, даже когда из среды вызывается код Transact-SQL. Не допускает значение NULL.

group_id

int

Идентификатор группы рабочей нагрузки, которой принадлежит этот запрос. Не допускает значение NULL.

query_hash

binary(8)

Двоичное хэш-значение рассчитывается для запроса и используется для идентификации запросов с аналогичной логикой. Можно использовать хэш запроса для определения использования статистических ресурсов для запросов, которые отличаются только своими литеральными значениями. Дополнительные сведения см. в разделе Поиск и настройка сходных запросов с помощью хэширования запросов и планов запросов.

query_plan_hash

binary(8)

Двоичное хэш-значение рассчитывается для плана выполнения запроса и используется для идентификации аналогичных планов выполнения запросов. Можно использовать хэш плана запроса для нахождения совокупной стоимости запросов со схожими планами выполнения. Дополнительные сведения см. в разделе Поиск и настройка сходных запросов с помощью хэширования запросов и планов запросов.

Разрешения

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

ПримечаниеПримечание

Если у пользователя есть разрешение VIEW SERVER STATE для сервера, он увидит все выполняющиеся сеансы на экземпляре SQL Server. В противном случае видимым будет только текущий сеанс.