Приоритет запроса в MS SQL - PullRequest
22 голосов
/ 14 сентября 2008

Есть ли способ сообщить MS SQL, что запрос не слишком важен и что он может (и должен) занимать время?

Аналогично, есть ли способ сообщить MS SQL, что он должен отдавать более высокий приоритет запросу?

Ответы [ 3 ]

18 голосов
/ 15 сентября 2008

Не в версиях ниже SQL 2008. В SQL Server 2008 есть регулятор ресурсов. Используя это, вы можете назначать логины для групп на основе свойств логина (логина, имени приложения и т. Д.). Затем группы могут быть назначены в пулы ресурсов, а также ограничения или ограничения, т.е. ресурсы могут быть применены к этим пулам ресурсов

2 голосов
/ 14 сентября 2008

SQL Server еще не имеет какой-либо формы регулятора ресурсов. Существует опция SET, которая называется QUERY_GOVERNOR_COST_LIMIT, но это не совсем то, что вы ищете. И это предотвращает выполнение запросов на основе стоимости, а не управления ресурсами.

1 голос
/ 15 сентября 2008

Я не уверен, что это то, о чем вы спрашиваете, но у меня была ситуация, когда одним кликом пользовательского интерфейса добавлялось 10 000 записей в очередь электронной почты (много данных в теле). В течение следующих нескольких дней электронное письмо отправлялось, поэтому оно не должно быть высоким приоритетом, фактически оно будет загружать сервер каждый раз, когда это происходит.

Я разделил процедуру на 10000 отдельных вызовов, запустил процесс в пользовательском интерфейсе в другом потоке (с низким приоритетом) и перевел его в спящий режим на секунду после запуска процедуры. Это заняло некоторое время, но у меня был очень детальный контроль над тем, что он делал.

Кстати, это был НЕ спам, так что не пытайся мне это подумать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...