Вопрос о буферизации в Microsoft SQL Server - PullRequest
1 голос
/ 06 февраля 2011

Я хотел бы знать, как настроить Microsoft SQL Server для работы следующим образом:

  • Все записи в БД являются «записью позади», все запросы работают в основном из ОЗУкеш (для скорости), т.е. он сохраняет данные на жестком диске в свободное время, в фоновом режиме.

Причина?Скорость.Мы предполагаем, что надежность базовой машины составляет 99,99% (это экземпляр Amazon EC2), поэтому мы не возражаем против кэширования всех данных в ОЗУ (и даже в случае сбоя мы в любом случае можем просто самостоятельно перестроить базу данных из сторонних данныхисточники).

Например:

  • Пользователь 1 записывает пакет данных X в базу данных.
  • Пользователь 2 запрашивает этот же пакет данных X, спустя 2 мс.
  • Пользователь 2 должен увидеть пакет данных X, так как SQL будет обслуживать его прямо из кеша ОЗУ (даже если пакет данных X не был сохранен на жестком диске).
  • Пакет данных Xбудет сохранен на жестком диске в свободное время, может быть, через 500 мс.

1 Ответ

3 голосов
/ 14 февраля 2011

Если у вас большой объем памяти и вы установили высокий параметр Min Memory в экземпляре SQL Server, SQL попытается максимально использовать его.

Процесс Checkpoint - это то, что заставляет грязные страницы записываться на диск (что происходит автоматически, но может быть принудительно), поэтому вы можете захотеть прочитать следующее. http://msdn.microsoft.com/en-us/library/ms188748.aspx

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

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