===== Как получить текущий процент выполнения запроса к БД SQL Server =====
{{:microsoft-sql-server:t-sql-script-samples:pasted:20170820-144235.png }} В SQL Server некоторые пользовательские запросы, выполняемые к той или иной базе данных могут не иметь информации о статусе выполнения в графической оболочке **SQL Server Management Studio** (SSMS).
Например, если в консоли SSMS администратор вызовет сжатие БД через графический интерфейс, то в окне выполнения задачи он может не увидеть процесс выполнения задачи.
{{ :microsoft-sql-server:t-sql-script-samples:pasted:20190206-114318.png }}
В данном случае узнать статус выполнения задачи в процентном показателе можно запросом к базе вида:
SELECT
[command]
,[start_time]
,[percent_complete]
,[estimated_completion_time] / 60000. AS [estimated_completion_time_min]
FROM sys.dm_exec_requests
WHERE [command] LIKE '%compact%'
{{ :microsoft-sql-server:t-sql-script-samples:pasted:20190206-114515.png }}
Если мы не знаем, как называется выполняемая команда, то просто уберём последнюю строку, чтобы получить список всех выполняемых к БД запросов:
SELECT
[command]
,[start_time]
,[percent_complete]
,[estimated_completion_time] / 60000. AS [estimated_completion_time_min]
FROM sys.dm_exec_requests
----
**Дополнительная информация**:
* [[https://olontsev.ru/2012/06/check-query-percent-complete/|Блог Олонцева Сергея - Как узнать процент выполнения запроса]]
----
Проверено на следующих конфигурациях:
^ Версия SQL Server ^ Версия SSMS ^
| Microsoft SQL Server 2016 SP2 CU4 (13.0.5233.0) | Microsoft SQL Server Management Studio 17.9.1 |
----
{{:user:blogroot.png?50&nolink |}} Автор первичной редакции:\\ [[user:blogroot|Алексей Максимов]] \\ Время публикации: 06.02.2019 11:41
{{tag>SQL "Microsoft SQL Server" Database T-SQL Transact-SQL "SQL Server Management Studio" SSMS}}
~~DISCUSSION~~