Если у меня 8 ГБ ОЗУ на сервере и я запускаю 4 экземпляра SQL Express, будет ли общий объем памяти, используемый SQL Server, 1 ГБ или 4 ГБ?
Каждый экземпляр может использовать до 1 ГБ памяти для пула буферов . Каждый экземпляр может использовать чуть больше 1 ГБ, потому что не все выделения памяти проходят через буферный пул. В вашем случае максимальная память, используемая четырьмя экземплярами для пула буферов, будет 4 ГБ.
Для подтверждения я запустил два экземпляра ядра СУБД SQL Server 2008 Express, выполнил некоторые действия для загрузки (отдельных) буферных пулов, а затем посмотрел на использование памяти для каждого экземпляра несколькими способами, например, с помощью DBCC MEMORYSTATUS или путем подсчета количества буферов с использованием DMV sys.dm_os_buffer_descriptors .
Указанные ниже значения использования физической памяти были получены с использованием одновременных запросов к системному DMV sys.dm_os_process_memory в каждом экземпляре механизма базы данных:
SELECT
dopm.physical_memory_in_use_kb
FROM sys.dm_os_process_memory AS dopm;
Выход:
╔═══════════╦═══════════╗
║ Instance1 ║ Instance2 ║
╠═══════════╬═══════════╣
║ 1102872 ║ 1059812 ║
╚═══════════╩═══════════╝
Каждый из них немного превышает 1 ГБ, поскольку общее использование физической памяти включает в себя не только использование пула буферов, как упоминалось ранее.
Желательно ли запускать несколько таких экземпляров, чтобы каждая база данных могла лучше использовать ресурсы (при условии, что на сервере достаточно ресурсов)?
Если базы данных в каждом экземпляре функционально независимы, то, по крайней мере, можно запустить несколько экземпляров Express таким образом, хотя вам необходимо уделить особое внимание настройке, и обслуживание может стать более сложным.
Возможно, вам лучше использовать другую редакцию, такую как полнофункциональная (и очень дешевая) версия для разработчиков, если предполагаемое использование соответствует лицензии). Вы должны были бы рассказать намного больше об обстоятельствах, чтобы получить четкий ответ по этому вопросу.
SQL Server Database Engine
средстваA Single Instance
. Каждый раз, когда вам нужно изменить сервер диалога, к которому вы подключаетесь (например,localhost\dev
vslocalhost\test
), это новый «Экземпляр» или новый «Механизм». Просто думал, что проясню это.