Якщо у мене на сервері є 8 ГБ оперативної пам’яті і я виконую 4 екземпляри SQL Express, чи буде загальний обсяг пам’яті, який використовує SQL Server, 1 Гб або 4 ГБ?
Кожен екземпляр може використовувати до 1 ГБ пам'яті для буферного пулу . Кожен екземпляр може використовувати трохи більше 1 ГБ, оскільки не всі виділення пам'яті проходять через буферний пул. У вашому випадку максимальна пам'ять, що використовується чотирма екземплярами для буферного пулу, складе 4 Гб.
Для підтвердження я запустив два екземпляри бази даних SQL Server 2008 Express Data Engine, здійснив деяку діяльність для завантаження (окремих) пулів буфера, а потім роздивився використання пам’яті певного екземпляра кількома способами, наприклад, використовуючи 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
протиlocalhost\test
), це новий "Екземпляр" або новий "Двигун". Просто думав, що я проясню це.