Назад | Перейти на главную страницу

Могу ли я уместить всю БД в память?

Моя база данных имеет размер около 1 ГБ (согласно mdf-файлу моего db). У моего сервера базы данных 4 ГБ оперативной памяти. Если посмотреть на потребление памяти на компьютере в активном состоянии, оно составляет около 85% (включая ОС и т. Д.).

Означает ли это, что все операции чтения БД работают только в памяти (т.е. вся БД находится в памяти)? или есть еще случай, когда он должен был бы пойти на диск?

Да, скорее всего, вся база данных хранится в памяти. Он будет сбрасывать грязные страницы на диск с интервалами между контрольными точками. Однако обратите внимание, что все обновления должны будут записываться в журнал и ждать, пока записи журнала не будут закреплены в долговременном хранилище, прежде чем фиксировать. Эта старая бумага Основы ввода-вывода SQL Server 2000 есть все детали, которые вам когда-либо понадобятся, и многое другое.

Но вам не нужно гадать, вы можете точно измерить это и посмотреть, произойдет это или нет. Подходящий счетчики производительности являются:

  • Ожидаемая продолжительность жизни страницы Количество секунд, в течение которых страница будет оставаться в буферном пуле без ссылок.
  • Чтения страниц / сек Количество операций чтения физических страниц базы данных в секунду. Эта статистика отображает общее количество физических страниц, прочитанных по всем базам данных. Поскольку физический ввод-вывод стоит дорого, вы можете минимизировать затраты, используя больший кэш данных, интеллектуальные индексы и более эффективные запросы, или изменив структуру базы данных.
  • Запись страницы / сек Количество операций записи физических страниц базы данных в секунду.

Вся БД (т.е. данные) не будет храниться в памяти (сервер sql). После изучения индексов и / или ключей он получит указатель на то, где в файле данных находятся данные, которые вы ищете, и, вероятно, затем перейдет на диск для их извлечения. Если нет ключей или индексов, пришлось бы сканировать всю кучу.

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

Вы МОЖЕТЕ получить базы данных в памяти, например, базу данных MySql Cluster .... Она предназначена для размещения ВСЕЙ базы данных в памяти кластера серверов для обеспечения высокой доступности / аварийного восстановления и быстрого извлечения данных.