SQL-сервер ограничивает ресурсы для хранимой процедуры - PullRequest
0 голосов
/ 03 апреля 2012

У меня есть хранимая процедура, которая занимает слишком много ресурсов сервера.Я хочу ограничить этот запрос только использованием, скажем, не более 10% ресурсов.Я слышал о регуляторе ресурсов , но он доступен только для корпоративных версий и версий для разработчиков.У меня есть стандартное издание.Есть ли другие альтернативы этому, кроме покупки лучшей версии сервера SQL?

Ответы [ 2 ]

3 голосов
/ 03 апреля 2012

Определить «ресурсы».IO?ЦПУ?Объем памяти?Сеть?Разногласия?Размер журнала?Tempdb?И вы не можете ответить «все».Вам нужно указать какие ресурсы используются сейчас процедурой.

Ваш вопрос слишком общий, чтобы на него можно было ответить.Не существует общего механизма для ограничения «ресурсов» в запросе или процедуре, даже регулятор ресурсов ограничивает только некоторые ресурсы.Вы описываете свою проблему, как - манипулирование данными большого объема в течение длительного периода времени, например, десятки тысяч обновлений вставок по всей базе данных , которые указывают на пакетную обработку обработки.Если процедура действительно соответствует тому, что вы описали, то ее выполнение, вероятно, не то, что вам нужно, потому что вы хотите уменьшить продолжительность транзакций (пакетов), а не увеличить ее.

И в первую очередь: анализировали ли вы процедуру как потребление ресурсов процедуры как проблему производительности, используя методологию, подобную Ожидания и очереди ?Только после того, как вы это сделаете, и процедура будет работать оптимально (то есть она потребляет минимум ресурсов, необходимых для выполнения своей работы), вы сможете приступить к дросселированию процедуры (и, скорее всего, к этому времени потребуется * 1020).* чтобы дроссель волшебно исчез)

1 голос
/ 03 апреля 2012

Вы можете использовать подсказку MAXDOP для ограничения количества процессоров, которые может использовать данный запрос. За исключением упомянутых вами высококлассных наворотов, я не думаю, что есть что-то, что позволяет вам устанавливать ограничения на уровне одного процесса для выделения памяти или использования диска.

...