Мониторинг выполнения 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"