SQL Server и RAM - PullRequest
       4

SQL Server и RAM

0 голосов
/ 15 декабря 2010

Я использую SQL Server 2008 enterprise на своем онлайн-сервере, в основной базе данных есть таблицы, которые ожидают более 2 миллионов записей в месяц, так как эти таблицы растут, SQL Server много занимает из установленной памяти 4 ГБ и затем закрывает серверОЗУ.

Я ограничил ОЗУ SQL Server до 2 ГБ, но, когда он использует эти оперативные памяти, он перестает хорошо работать, разрушает соединения и работает слишком медленно.

Это нормально?И что я могу сделать, чтобы получить обратно ОЗУ от SQL Server после запроса этих больших таблиц?

Ответы [ 4 ]

5 голосов
/ 15 декабря 2010

На выделенном сервере Windows, на котором запущен SQL Server, некоторые счетчики уменьшат объем свободной оперативной памяти до 5-15 МБ. Это нормально. Нет утечки памяти.

Если у вас установлено 4 ГБ ОЗУ, я бы рекомендовал использовать ключ / 3 ГБ на 32-битной системе и позволить SQL Server самостоятельно отрабатывать ОЗУ. Для 64-разрядных систем добавьте больше оперативной памяти и снова дайте SQL Server отработать оперативную память для себя.

Результатом голодания SQL Server в ОЗУ будет перегрузка диска при перемещении данных в памяти.

Если ваш SQL Server отсутствует в выделенном блоке, переместите его на один.

Ассорти ссылки на другие вопросы SO: Один , Два , Три

3 голосов
/ 15 декабря 2010

См. Здесь: Путаница утечки памяти в SQL Server

По сути, SQL Server будет использовать столько памяти, сколько сможет захватить, считывание с диска намного дороже, чем из ОЗУ. Чтобы освободить оперативную память, вы можете перезапустить ее, но затем все ваши запросы будут медленными, потому что они попадут на диск

1 голос
/ 15 декабря 2010

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

Если у вас недостаточно памяти для сервера SQL,он автоматически «устаревает» запросы и кэши, так что самые старые из них будут удалены.

Прочтите здесь для получения дополнительной информации.

1 голос
/ 15 декабря 2010

Вам нужно разрешить Sql Server обрабатывать память. Он будет пытаться использовать все, что вы ему дадите, потому что то, что он загружает в память, напрямую связано с тем, насколько быстро он работает. Не беспокойтесь об этом. Он вернет память другим процессам в системе, когда им это потребуется, и освободит ее, когда эти процессы будут завершены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...