Перераспределяет ли регулятор ресурсов SQL ресурсы во время выполнения запроса? - PullRequest
3 голосов
/ 22 декабря 2009

Скажем, у меня есть два пользователя (U1, U2), сопоставленные с двумя пулами ресурсов (R1, R2) с максимальными значениями 20% и 80%. U1 выполняет трудоемкий запрос, который выполняется, скажем, 15 минут. Когда он начал выполнение, это был единственный процесс, и, следовательно, SQL-сервер выделяет все ресурсы для этого запроса. 5 минут спустя U2 выполняет другой запрос. Будет ли регулятор ресурсов сокращать ресурсы U1 до 20% и позволит U2 занять 80%, или он будет ждать завершения U1, а затем разрешит U2 80%.

Я согласен, что первый случай - это то, что ожидается, но я увидел этот пост и мне стало любопытно. Пожалуйста, объясните, что произойдет в реальном сценарии.

1 Ответ

2 голосов
/ 23 декабря 2009

Регулятор ресурсов включается только тогда, когда есть конфликт за ресурсы. Если конкретное соединение не встречает аргументов в своем желании использовать все ресурсы на коробке, оно будет.

Так, если есть процесс, который выполняется в течение часа или около того, но в течение десяти минут приходит процесс, который требует 80% (и ему разрешено использовать 80%), тогда исходный процесс будет сокращен до 20% за эти десять минут.

Надеюсь, это прояснит для вас.

...