У меня есть база данных ~ 45 ГБ, которая быстро увеличивается (~ 1 ГБ каждую неделю).
Так что он делает много вставок; В веб-приложении не так много пользователей, поэтому число обращений сейчас низкое.
Но я заметил, что пользователи RAM sql server перешли с ~ 1 ГБ при первом запуске сервера на ~ 7 ГБ ОЗУ через неделю.
Есть ли какая-то утечка памяти? В MSDN была статья, в которой предлагалось, чтобы сервер SQL увеличивал объем памяти, используемой для кэширования, и этот показатель будет постоянно увеличиваться. Однако на сервере только 7,5 ГБ или оперативной памяти, поэтому я беспокоюсь, что ему не хватит памяти, если я не перезагружаю SQL Server каждую неделю ... что кажется неправильным.
Это типичное поведение? Есть ли какие-то настройки, которые я могу установить, чтобы установить ограничение на использование памяти?
источник
Ответы:
SQL-сервер предназначен для использования как можно большего количества оперативной памяти. SQL-сервер также невероятно умный. У нас есть серверы баз данных с оперативной памятью от 2 ГБ до 96 ГБ, и мне ни разу не приходилось вмешиваться и начинать управлять ОЗУ вручную, и большинство из них используют 99,5%.
Простой факт заключается в том, что SQL Server, работающий с 1 ГБ потребленной памяти, будет выполняться намного медленнее при чтении, чем SQL-сервер, работающий с 96 ГБ потребленной памяти.
Если вы не делите роли сервера SQL с другими ролями, интенсивно использующими память, просто оставьте это в покое. Он никогда не будет использовать больше памяти, доступной в системе, и если он достигнет 99% использования, то отлично - вы создали большой кеш, и теперь все будет быстрее.
источник
Как правило, вы хотите выделить 1-2 гигабайта оперативной памяти для ОС, чтобы у ОС была оперативная память для работы. Затем SQL Server может иметь остальную часть памяти.
источник