Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Почему запрос съедает больше памяти, чем нужно  [new]
ЕвгенийGEM
Member

Откуда:
Сообщений: 50
Коллеги, прошу помощи
Есть запрос. По системному представлению sys.dm_exec_query_memory_grants видно, что сессия, которая запускает данный запрос поглощает в 10, а то и в 20 раз больше памяти, чем нужно, исходя из значений requested_memory_kb, granted_memory_kb, required_memory_kb, used_memory_kb и max_used_memory_kb.
Кто с таким сталкивался и как с этим бороться?
Может быть статистика врет оптимизатору и он тупо не знает сколько ему нужно будет строк вернуть?
Всем спасибо
22 ноя 18, 12:09    [21741067]     Ответить | Цитировать Сообщить модератору
 Re: Почему запрос съедает больше памяти, чем нужно  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 5951
ЕвгенийGEM,

примерно так. Если это не праздное любопытство, а вызывает проблемы производительности, используйте Resource Governor для ограничениz выделения памяти.
22 ноя 18, 13:13    [21741222]     Ответить | Цитировать Сообщить модератору
 Re: Почему запрос съедает больше памяти, чем нужно  [new]
invm
Member

Откуда: Москва
Сообщений: 8203
https://blogs.msdn.microsoft.com/sqlqueryprocessing/2010/02/16/understanding-sql-server-memory-grant/
22 ноя 18, 13:19    [21741236]     Ответить | Цитировать Сообщить модератору
 Re: Почему запрос съедает больше памяти, чем нужно  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2107
ЕвгенийGEM,

Как насчет того чтобы привести цифры? Мы не знаем что у вас там в 10 раз больше чем что.
То есть сессия попросила 100мб, ей дали 100мб, а она использует 2ГБ?
У вас не 2017 сервер?
27 ноя 18, 03:01    [21745617]     Ответить | Цитировать Сообщить модератору
 Re: Почему запрос съедает больше памяти, чем нужно  [new]
ЕвгенийGEM
Member

Откуда:
Сообщений: 50
Всем спасибо за ответы
Если ужимать в памяти или в потоках, то будет выполняться в 10 раз дольше.
В итоге просто переписали запрос, используя оконные функции с секционированием вместо вложенных запросов до этого
5 дек 18, 08:42    [21753919]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить