powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выделение оперативной памяти на запрос
10 сообщений из 10, страница 1 из 1
Выделение оперативной памяти на запрос
    #40065050
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Появился вопрос по выделению памяти на запрос. После перезагрузки сервера появилась проблема с несколькими запросами, которые начали запрашивать десятки ГБ оперативной памяти на запуск. Через пару дней проблема ушла и эти же запросы запрашивали уже в МБ. Кроме памяти было ещё и большее количество чтений строк, у некоторых запросов больше, чем в таблицах.
После перезагрузки очищается динамическая память, скорее всего с этим связано. Но сейчас вижу, что эти запросы опять вернулись к повышенным запросам, хотя ребута не было.
Один хочет 80+ ГБ, хотя показывает, что ему 22 МБ достаточно, при этом в пункте идеально - вся память сервера.
Версия 2017 CU21 Enterprise.
С чем может быть связан такой переизбыток запрошенной оперативной памяти и почему опять к нему вернулось?
...
Рейтинг: 0 / 0
Выделение оперативной памяти на запрос
    #40065097
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Danion, план запроса изменился.
Статистика протухла, или запрос был скомпилирован с неудачными параметрами - это чаще всего.
...
Рейтинг: 0 / 0
Выделение оперативной памяти на запрос
    #40065121
Danion
Добрый день.

Появился вопрос по выделению памяти на запрос. После перезагрузки сервера появилась проблема с несколькими запросами, которые начали запрашивать десятки ГБ оперативной памяти на запуск. Через пару дней проблема ушла и эти же запросы запрашивали уже в МБ. Кроме памяти было ещё и большее количество чтений строк, у некоторых запросов больше, чем в таблицах.
После перезагрузки очищается динамическая память, скорее всего с этим связано. Но сейчас вижу, что эти запросы опять вернулись к повышенным запросам, хотя ребута не было.
Один хочет 80+ ГБ, хотя показывает, что ему 22 МБ достаточно, при этом в пункте идеально - вся память сервера.
Версия 2017 CU21 Enterprise.
С чем может быть связан такой переизбыток запрошенной оперативной памяти и почему опять к нему вернулось?
Надо смотреть планы запросов. Они могут быть не стабильными. Происходит примерно так: после перезагрузки первые несколько исполнений запроса идут с редкими параметрами. План строится под них. А потом запросы исполняются с наиболее типичными параметрами. И вот под них план уже оказывается крайне не оптимальным. В итоге в сотни раз возрастает длительность выполнения и потребление ресурсов. Через какое-то время план может опять перестроиться и всё вернётся в норму.

Есть брутальный способ: указывать в таких запросах OPTION RECOMPILE.
...
Рейтинг: 0 / 0
Выделение оперативной памяти на запрос
    #40065212
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danion,

если стабильно видите granted намного больше used, то настраивайте Resource Governor для ограничения максимальной квоты выделения памяти на запрос.

Воевать с этим можно бесконечно, но если запросы написаны как попало, либо это целевая схема, то других решений нет. Сервер предполагает выделение памяти исходя из оценки количества строк в максимальной объеме одного из наборов данных согласно плана выполнения запроса.
...
Рейтинг: 0 / 0
Выделение оперативной памяти на запрос
    #40065224
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы.
Статистика каждую ночь обновляется, но в прошлый раз вернулось в норму через день, а тут с понедельника тянется. Но хоть малое число запусков и систему не кладёт.
Посмотрю в понедельник как будет, OPTION RECOMPILE в каждый добавлять не хочется.
Может в сторону Resource Governor придётся смотреть.
...
Рейтинг: 0 / 0
Выделение оперативной памяти на запрос
    #40065234
Danion
Спасибо за ответы.
Статистика каждую ночь обновляется, но в прошлый раз вернулось в норму через день, а тут с понедельника тянется. Но хоть малое число запусков и систему не кладёт.
Посмотрю в понедельник как будет, OPTION RECOMPILE в каждый добавлять не хочется.
Может в сторону Resource Governor придётся смотреть.
В каждый не надо. Только в проблемные. Что мешает руками удалить из кэша план проблемного запроса и сразу увидеть результат? Можно весь кэш целиком сбросить. Хотя бы сразу будет видно, связана ли проблема с кривыми планами.
...
Рейтинг: 0 / 0
Выделение оперативной памяти на запрос
    #40065259
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
Danion,

если стабильно видите granted намного больше used, то настраивайте Resource Governor для ограничения максимальной квоты выделения памяти на запрос.

Воевать с этим можно бесконечно, но если запросы написаны как попало, либо это целевая схема, то других решений нет. Сервер предполагает выделение памяти исходя из оценки количества строк в максимальной объеме одного из наборов данных согласно плана выполнения запроса.


На оценку необходимого объема памяти, а в данном случае имеет место явная переоценка, влияет и размер полей (типы данных).
https://www.dbsophic.com/resources/sql-server-tuning-blog/post/21/variable-size-data-types-and-memory-grants
...
Рейтинг: 0 / 0
Выделение оперативной памяти на запрос
    #40065262
komrad
Владислав Колосов
Danion,

если стабильно видите granted намного больше used, то настраивайте Resource Governor для ограничения максимальной квоты выделения памяти на запрос.

Воевать с этим можно бесконечно, но если запросы написаны как попало, либо это целевая схема, то других решений нет. Сервер предполагает выделение памяти исходя из оценки количества строк в максимальной объеме одного из наборов данных согласно плана выполнения запроса.


На оценку необходимого объема памяти, а в данном случае имеет место явная переоценка, влияет и размер полей (типы данных).
https://www.dbsophic.com/resources/sql-server-tuning-blog/post/21/variable-size-data-types-and-memory-grants
И это может появляться после релоада сервера и через какое-то время самопроизвольно исчезать?
...
Рейтинг: 0 / 0
Выделение оперативной памяти на запрос
    #40065268
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ведущий профессионал
И это может появляться после релоада сервера и через какое-то время самопроизвольно исчезать?

нет, просто к слову пришлось
...
Рейтинг: 0 / 0
Выделение оперативной памяти на запрос
    #40065405
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danion,

В проблемных запросах используются таблицы с колоночным сжатием?
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выделение оперативной памяти на запрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]