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

Откуда:
Сообщений: 23
Ну вобщем база скромная довольно, скажем 500мб (реально активных данных вообще мегабайты)
А процесс сиквела жрет от 1-2-3 гига, причем не временно скачками, а постоянно и не освобождает до перезапуска
перезапустить и потыкать основные селекты - 200мб
Перестроить все индексы в базе - 700мб
Пачка вставок/апдейтов софтом - 750 мб
Перестроить все индексы - 1000мб
допустим индексы я будут обновлять раз в сутки или раз в неделю, но суть-то не меняется просто растянется по времени

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

Может что-то посмотреть какие-то конфиги или еще что?
13 дек 15, 12:17    [18553603]     Ответить | Цитировать Сообщить модератору
 Re: Куда столько памяти и почему не освобождает?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Onax
Не пойму это баг или фича?

Это - результат ваших настроек
Сервер берет столько памяти, сколько вы ему разрешили брать.
И освобождат ее он будет тогда, когда от оп.системы приждет соответствующий запрос на освобождение.
13 дек 15, 12:20    [18553608]     Ответить | Цитировать Сообщить модератору
 Re: Куда столько памяти и почему не освобождает?  [new]
Onax
Member

Откуда:
Сообщений: 23
ну обычно в софте выделяют память, юзают и освобождают
либо же выделяют и создают некий буфер чтоб потом им пользоваться для других задач
но почему он жрет всё больше и больше? т.е ок пусть на ребилд индекса ему надо 500мб, но почему второй ребилд опять забирает еще 300мб ? старая память чем занята, учитывая что в эти 500мб можно весь mdf положить со всеми потрохами
13 дек 15, 12:25    [18553619]     Ответить | Цитировать Сообщить модератору
 Re: Куда столько памяти и почему не освобождает?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Onax
ну обычно в софте выделяют память, юзают и освобождают

Обычно в софте с памятью делают то, что задают настройки софта

Onax
либо же выделяют и создают некий буфер чтоб потом им пользоваться для других задач
но почему он жрет всё больше и больше? т.е ок пусть на ребилд индекса ему надо 500мб, но почему второй ребилд опять забирает еще 300мб ? старая память чем занята, учитывая что в эти 500мб можно весь mdf положить со всеми потрохами

Если у вас есть советы MS о том, как обычно работает софт, то вы можете поделиться ими на специальном ресурсе, где MS собирает отзывы и предложения
13 дек 15, 12:45    [18553649]     Ответить | Цитировать Сообщить модератору
 Re: Куда столько памяти и почему не освобождает?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31993
Onax
т.е ок пусть на ребилд индекса ему надо 500мб, но почему второй ребилд опять забирает еще 300мб ? старая память чем занята, учитывая что в эти 500мб можно весь mdf положить со всеми потрохами
Ну, вы настроили сервер так, что он оставляет в памяти первую порцию данных, что бы потом её не читать с дисков, если понадобится, а для второй порции данных он выделяет новую память.
Можете изменить это, если вам так память дорога :-)

А вы как предлагаете? Что бы после обработки любого запроса сервер очищал все кеши? Боюсь, MS не посчитает такое решение оптимальным, и вас не поддержит :-)
13 дек 15, 13:14    [18553716]     Ответить | Цитировать Сообщить модератору
 Re: Куда столько памяти и почему не освобождает?  [new]
Mike_za
Member

Откуда: Москва
Сообщений: 1176
А как 500 метров превращаются в 3 ггб?
Даже если все страницы в буферный пул память поднять? Он же основную часть занимает?

У вас какая там раьочая нагрузка? Что база делает? Какие-то жирные отчеты через времянки?
Куча динамики не параметризованной(кеш планов)
На форуме были готовые скрипты, показывающие чем забита память
13 дек 15, 13:48    [18553796]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить