У нас есть определенная функция пользователь создал некоторое время назад, который показывает, как «подвешенный» статус в течение недели от:Пользовательская функция «приостановлена» - это нормально?
USE master
SELECT *
FROM sys.dm_exec_requests
CROSS APPLY sys.dm_exec_sql_text(sql_handle)
ORDER BY start_time
Строка из запроса выше, имеет «статус» как «приостановлено» и продолжает увеличиваться значения для каждого из:
cpu_time
210262625
total_elapsed_time
623982642
reads
741700958
reads
19754
logical_reads
2938802909
Я уже убил SPID, когда он достиг 37 млрд logical_reads
но используется очень часто, и, конечно, показал обратно вверх и начал этот же шаблон.
Мой вопрос действительно состоит из двух частей.
Во-первых, это обычное поведение для сильно используемой пользовательской функции, чтобы увидеть ее в состоянии ожидания?
Во-вторых, как я могу определить, сколько раз вызывается функция, определенная пользователем? (и потенциально так называемый)
В качестве побочного примечания я не очень доволен функцией и тем, как она была написана, однако, если это не «абсолютно ненормальное» поведение, у меня нет времени переписывать ее в настоящее время ,
Это был полезный ответ - оказывается, что функция вызывается из пользовательской активности, но и от работы SQL агента - по-разному, и работа агента зависает, все равно придется вникать в то, почему, но это заставило меня стать жертвой моей «ниндзя sql query killer saber attack» (теперь говорят, что 5 раз очень быстро) –