Альтернатива регулятору ресурсов SQL Server

У меня есть сервер отчетов, на котором работает стандарт SSRS 2008 R2. Этот сервер извлекает данные из другого SQL Server 2008 R2 (опять же Standard). Я хочу управлять приоритетом запросов на этих серверах SQL Standard аналогично Resource Governor.

Resource Governor — это функция только для предприятий, и в настоящее время я не могу позволить себе перейти на эту версию. Можете ли вы предложить подход/инструмент для достижения этого, хотя бы в какой-то степени: на основе учетной записи, использование ЦП, время ожидания запроса?


person CLU    schedule 11.07.2011    source источник
comment
Время ожидания запроса можно настроить для каждого отчета, но я не думаю, что вы можете управлять памятью и процессором для конкретного отчета.   -  person niktrs    schedule 11.07.2011


Ответы (1)


Можно запустить задание, которое сканирует текущие задачи и отслеживает, какие из них блокируют или перегружают ресурсы. Затем вы можете убивать разных спидов, основываясь на своих собственных критериях. Что это за критерии, зависит от потребностей вашего бизнеса.

Я ненавижу давать советы «Google это», но есть несколько инструментов, которые могут это сделать, каждый с различными уровнями настройки, или вы можете создать свой собственный. Код для создания собственного кода может быть немного сложным. В любом случае, если вы погуглите «монитор блоков sql» или «монитор sql spid», вы должны найти несколько возможных решений.

Эти решения обычно не учитывают ЦП и/или память, как это делает регулятор ресурсов. Однако вы можете посмотреть на фактический выполняемый код (надеюсь, вызовы хранимых процедур) и основывать свои решения на этом. Из описания вашей проблемы кажется, что это может быть то, что вы хотите сделать.

EDIT: Было бы лучше, если бы это была вики, поскольку у нее нет однозначного ответа? Затем он может служить набором различных существующих решений. Возможно, кто-то более вовлеченный в сайт SO может прокомментировать это.

person Tom H    schedule 11.07.2011
comment
Спасибо, Том и niktrs. Я погуглил монитор блока sql и нашел пару программ. Один из них, SQL Spy Performance Advisor, может реализовать автоматическое уничтожение блокирующих процессов. Но после достаточного расследования я думаю, что тайм-аута запроса может быть достаточно для моей цели, как упоминал @niktrs в комментарии. Было приятно узнать о вашем подходе. - person CLU; 12.07.2011