Skip to main content
sys.dm_exec_requests (Transact-SQL)
 

ПРИМЕНЯЕТСЯ К: даSQL Server (начиная с 2008) даБаза данных SQL Azure даХранилище данных SQL Azure даParallel Data Warehouse

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

System_CAPS_ICON_note.jpg Примечание


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

System_CAPS_ICON_note.jpg Примечание


Вызывать его из Хранилище данных SQL Azure или Параллельное хранилище данных, используйте имя sys.dm_pdw_nodes_exec_requests.

Имя столбцаТип данныхDescription
session_idsmallintИдентификатор сеанса, к которому относится данный запрос. Не допускает значение NULL.
request_idintИдентификатор запроса. Уникален в контексте сеанса. Не допускает значение NULL.
start_timeдаты и времениМетка времени поступления запроса. Не допускает значение NULL.
statusnvarchar(30)Состояние запроса. Может иметь одно из следующих значений.

Историческая справка
Запущен
Готово к запуску
В режиме ожидания
Приостановлена

Не допускает значение NULL.
commandnvarchar(32)Тип выполняемой в данный момент команды. Основные типы команд:

SELECT
INSERT
UPDATE
DELETE
BACKUP LOG
BACKUP DATABASE
DBCC
FOR

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

LOCK MONITOR;
CHECKPOINTLAZY;
WRITER.

Не допускает значение NULL.
sql_handlevarbinary(64)Хэш-карта текста SQL-запроса. Допускает значение NULL.
statement_start_offsetintКоличество символов в выполняемом в настоящий момент пакете или хранимой процедуре, в которой запущена текущая инструкция. Может применяться вместе с функциями динамического управления sql_handle, statement_end_offset и sys.dm_exec_sql_text для извлечения исполняемой в настоящий момент инструкции по запросу. Допускает значение NULL.
statement_end_offsetintКоличество символов в выполняемом в настоящий момент пакете или хранимой процедуре, в которой завершилась текущая инструкция. Может применяться вместе с функциями динамического управления sql_handle, statement_end_offset и sys.dm_exec_sql_text для извлечения исполняемой в настоящий момент инструкции по запросу. Допускает значение NULL.
plan_handlevarbinary(64)Хэш-карта плана выполнения SQL. Допускает значение NULL.
database_idsmallintИдентификатор базы данных, к которой выполняется запрос. Не допускает значение NULL.
user_idintИдентификатор пользователя, отправившего данный запрос. Не допускает значение NULL.
connection_iduniqueidentifierИдентификатор соединения, по которому поступил запрос. Допускает значение NULL.
blocking_session_idsmallintИдентификатор сеанса, блокирующего данный запрос. Если этот столбец содержит значение NULL, то запрос не блокирован или сведения о сеансе блокировки недоступны (или не могут быть идентифицированы).

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

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

-4 = Идентификатор сеанса владельца кратковременной блокировки определить на данный момент не удалось из-за переходов между внутренними состояниями кратковременной блокировки.
wait_typenvarchar(60)Если запрос в настоящий момент блокирован, в столбце содержится тип ожидания. Допускает значение NULL.

Сведения о типах ожиданий см. в разделе sys.dm_os_wait_stats (Transact-SQL).
wait_timeintЕсли запрос в настоящий момент блокирован, в столбце содержится продолжительность текущего ожидания (в миллисекундах). Не допускает значение NULL.
last_wait_typenvarchar(60)Если запрос был блокирован ранее, в столбце содержится тип последнего ожидания. Не допускает значение NULL.
wait_resourcenvarchar(256)Если запрос в настоящий момент блокирован, в столбце указан ресурс, освобождения которого ожидает запрос. Не допускает значение NULL.
open_transaction_countintЧисло транзакций, открытых для данного запроса. Не допускает значение NULL.
open_resultset_countintЧисло результирующих наборов, открытых для данного запроса. Не допускает значение NULL.
transaction_idbigintИдентификатор транзакции, в которой выполняется запрос. Не допускает значение NULL.
context_infovarbinary(128)Значение CONTEXT_INFO сеанса. Допускает значение NULL.
percent_completeреальныеПроцент завершения работы для следующих команд.

ALTER INDEX REORGANIZE
параметра AUTO_SHRINK с ALTER DATABASE
BACKUP DATABASE
DBCC CHECKDB
DBCC CHECKFILEGROUP
DBCC CHECKTABLE
DBCC INDEXDEFRAG
DBCC SHRINKDATABASE
DBCC SHRINKFILE
RECOVERY
RESTORE DATABASE
ROLLBACK
TDE ENCRYPTION

Не допускает значение NULL.
estimated_completion_timebigintТолько для внутреннего использования. Не допускает значение NULL.
cpu_timeintВремя ЦП (в миллисекундах), затраченное на выполнение запроса. Не допускает значение NULL.
total_elapsed_timeintОбщее время, истекшее с момента поступления запроса (в миллисекундах). Не допускает значение NULL.
scheduler_idintИдентификатор планировщика, который планирует данный запрос. Не допускает значение NULL.
task_addressvarbinary(8)Адрес блока памяти, выделенного для задачи, связанной с этим запросом. Допускает значение NULL.
readsbigintЧисло операций чтения, выполненных данным запросом. Не допускает значение NULL.
writesbigintЧисло операций записи, выполненных данным запросом. Не допускает значение NULL.
logical_readsbigintЧисло логических операций чтения, выполненных данным запросом. Не допускает значение NULL.
text_sizeintУстановка параметра TEXTSIZE для данного запроса. Не допускает значение NULL.
languagenvarchar(128)Установка языка для данного запроса. Допускает значение NULL.
date_formatnvarchar(3)Установка параметра DATEFORMAT для данного запроса. Допускает значение NULL.
date_firstsmallintУстановка параметра DATEFIRST для данного запроса. Не допускает значение NULL.
quoted_identifierбит1 = Параметр QUOTED_IDENTIFIER для запроса включен (ON). В противном случае — 0.

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

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

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

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

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

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

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

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

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

0 = не указан;

1 = читать незафиксированные;

2 = читать зафиксированные;

3 = повторяемые результаты;

4 = сериализуемые;

5 = моментальный снимок.
lock_timeoutintВремя ожидания блокировки для данного запроса (в миллисекундах). Не допускает значение NULL.
deadlock_priorityintЗначение параметра DEADLOCK_PRIORITY для данного запроса. Не допускает значение NULL.
row_countbigintЧисло строк, возвращенных клиенту по данному запросу. Не допускает значение NULL.
prev_errorintПоследняя ошибка, происшедшая при выполнении запроса. Не допускает значение NULL.
nest_levelintТекущий уровень вложенности кода, выполняемого для данного запроса. Не допускает значение NULL.
granted_query_memoryintЧисло страниц, выделенных для выполнения поступившего запроса. Не допускает значение NULL.
executing_managed_codeбитУказывает, выполняет ли данный запрос в настоящее время код объекта среды CLR (например, процедуры, типа или триггера). Этот флаг установлен в течение всего времени, когда объект среды CLR находится в стеке, даже когда из среды вызывается код Transact-SQL. Не допускает значение NULL.
group_idintИдентификатор группы рабочей нагрузки, которой принадлежит этот запрос. Не допускает значение NULL.
query_hashbinary(8)Двоичное хэш-значение рассчитывается для запроса и используется для идентификации запросов с аналогичной логикой. Можно использовать хэш запроса для определения использования статистических ресурсов для запросов, которые отличаются только своими литеральными значениями.
query_plan_hashbinary(8)Двоичное хэш-значение рассчитывается для плана выполнения запроса и используется для идентификации аналогичных планов выполнения запросов. Можно использовать хэш плана запроса для нахождения совокупной стоимости запросов со схожими планами выполнения.
statement_sql_handlevarbinary(64)Область применения: начиная с SQL Server 2014 до SQL Server 2016.

Зарезервировано для последующего использования.
statement_context_idbigintОбласть применения: начиная с SQL Server 2014 до SQL Server 2016.

Зарезервировано для последующего использования.
pdw_node_idintПрименяется к: Хранилище данных SQL Azure,Параллельное хранилище данных

Идентификатор узла, который это распределение.

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

A. Поиск текста запроса для выполнения пакета

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

SELECT * FROM sys.dm_exec_requests;  
GO  

Затем для получения текста инструкции используйте скопированный sql_handle с помощью системной функции sys.dm_exec_sql_text(sql_handle).

SELECT * FROM sys.dm_exec_sql_text(< copied sql_handle >);  
GO  

Б. Поиск всех блокировок, которые содержит выполняемый пакет

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

SELECT * FROM sys.dm_exec_requests;  
GO  

Затем, чтобы найти сведения о блокировке, используйте скопированный transaction_id с помощью системной функции sys.dm_tran_locks.

SELECT * FROM sys.dm_tran_locks   
WHERE request_owner_type = N'TRANSACTION'   
    AND request_owner_id = < copied transaction_id >;  
GO  

В. Поиск всех запросов, заблокированных в настоящий момент

В следующем примере запрос sys.dm_exec_requests для поиска сведений о заблокированных запросах.

SELECT session_id ,status ,blocking_session_id  
    ,wait_type ,wait_time ,wait_resource   
    ,transaction_id   
FROM sys.dm_exec_requests   
WHERE status = N'suspended';  
GO  

Динамические административные представления и функции (Transact-SQL)
Динамические административные представления и функции (Transact-SQL), связанные с выполнением
sys.dm_os_memory_clerks (Transact-SQL)
sys.dm_os_sys_info (Transact-SQL)
sys.dm_exec_query_memory_grants (Transact-SQL)
sys.dm_exec_query_plan (Transact-SQL)
sys.dm_exec_sql_text (Transact-SQL)