Моя база данных имеет размер около 1 ГБ (согласно mdf-файлу моего db). У моего сервера базы данных 4 ГБ оперативной памяти. Если посмотреть на потребление памяти на компьютере в активном состоянии, оно составляет около 85% (включая ОС и т. Д.).
Означает ли это, что все операции чтения БД работают только в памяти (т.е. вся БД находится в памяти)? или есть еще случай, когда он должен был бы пойти на диск?
Да, скорее всего, вся база данных хранится в памяти. Он будет сбрасывать грязные страницы на диск с интервалами между контрольными точками. Однако обратите внимание, что все обновления должны будут записываться в журнал и ждать, пока записи журнала не будут закреплены в долговременном хранилище, прежде чем фиксировать. Эта старая бумага Основы ввода-вывода SQL Server 2000 есть все детали, которые вам когда-либо понадобятся, и многое другое.
Но вам не нужно гадать, вы можете точно измерить это и посмотреть, произойдет это или нет. Подходящий счетчики производительности являются:
Вся БД (т.е. данные) не будет храниться в памяти (сервер sql). После изучения индексов и / или ключей он получит указатель на то, где в файле данных находятся данные, которые вы ищете, и, вероятно, затем перейдет на диск для их извлечения. Если нет ключей или индексов, пришлось бы сканировать всю кучу.
В зависимости от того, какую версию SQL Server вы используете, могут быть стратегии кэширования часто используемых данных для минимизации операций чтения с диска.
Вы МОЖЕТЕ получить базы данных в памяти, например, базу данных MySql Cluster .... Она предназначена для размещения ВСЕЙ базы данных в памяти кластера серверов для обеспечения высокой доступности / аварийного восстановления и быстрого извлечения данных.