Мониторинг выполнения SQL-запроса в SQL SERVER

Я видел аналогичный вопрос, который спрашивал, как контролировать ход операции резервного копирования/восстановления: Есть ли SQL script, который я могу использовать для определения процесса резервного копирования или восстановления SQL Server?

Я хотел бы знать, есть ли подобный запрос/способ увидеть, сколько времени осталось до запроса, пока оно не закончится. Например, один запрос обычно длился 5 минут. Я хотел бы знать, сколько осталось времени, пока оно не закончится ВО ВРЕМЯ выполнения запроса.

Спасибо заранее, Рони.

Ответы

Ответ 1

нет способа узнать, сколько осталось времени. время выполнения запроса зависит от многих факторов, помимо самого самого запроса: блокировки/блокировки других запросов, других процессов, потребляющих ресурсы (использование процессора/диска), операционной системы, сети и т.д. Что делать, если ваш 5-минутный запрос запущен, кто-то еще запускает большой отчет, ваш запрос может работать 5:30. Что делать, если кто-то начинает загружать большой файл и запускает всю пропускную способность сети? Что делать, если ОС решает сделать что-то в фоновом режиме и т.д. До тех пор, пока все строки не будут возвращены, запрос не будет выполнен, но он может работать в переменный временной интервал.

Ответ 2

sys.dm_exec_requests имеет эту информацию, поэтому что-то подобное даст вам прогресс:

SELECT 
percent_complete
FROM sys.dm_exec_requests
--where session_id=51 or command like 'restore%'

Ответ 3

Вы хотите Статистика Live Query.

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

введите описание изображения здесь

Затем вы даете вам реальный запрос:

введите описание изображения здесь

Внизу вы видите общий прогресс:

введите описание изображения здесь

Ответ 4

Да, вы можете узнать приблизительное истекшее время, если не будет какой-то неожиданной ситуации, влияющей на выполнение процесса.

Select total_elapsed_time,
 * from sys.dm_exec_sessions where session_id="your Id here"