Я хотел бы иметь возможность прервать конкретный оператор SQL, если это займет больше указанного количества секунд. Как я могу это сделать?
Например, я хотел бы сделать что-то вроде:
SET NextStatementTimeOutSeconds = 60
SELECT * FROM MyTable
IF @@LastStatementTimedOut = 1
PRINT 'Statement timed out after 60 seconds'
ELSE
PRINT 'Statement completed in less than 60 seconds'
Обратите внимание, что я набрал NextStatementTimeOutSeconds
и @@LastStatementTimedOut
, чтобы проиллюстрировать, что я хотел бы сделать.
Спасибо за предложения. Я думаю об использовании такого таймаута внутри одного скрипта / пакета sql, как показано выше, если это возможно.
Справочная информация. У нас есть несколько хранимых процедур, которые я бы хотел выполнять быстрее, чем X секунд. Так что я бы назвал их один за другим; и если на это уйдет больше X секунд, я просто откажусь и выведу утверждение типа «sproc 13 занимает слишком много времени». Данные меняются, и я пробую разные изменения индекса, поэтому я хотел бы проверить все спроки по времени после таких изменений, чтобы убедиться, что все они меньше X секунд.