Si tengo 8 GB de RAM en un servidor y ejecuto 4 instancias de SQL Express, ¿el límite de memoria total utilizado por SQL Server será de 1 GB o 4 GB?
Cada instancia puede usar hasta 1 GB de memoria para el grupo de búferes . Cada instancia puede usar un poco más de 1 GB en total porque no todas las asignaciones de memoria pasan por el grupo de búferes. En su caso, la memoria máxima utilizada por las cuatro instancias para el grupo de búferes sería de 4 GB.
Para confirmar, inicié dos instancias del Motor de base de datos Express de SQL Server 2008 , realicé alguna actividad para cargar los grupos de búferes (separados) y luego miré la utilización de la memoria por instancia de varias maneras, por ejemplo, utilizando DBCC MEMORYSTATUS o contando el número de buffers utilizando el DMV sys.dm_os_buffer_descriptors .
Los números de uso de memoria física a continuación se obtuvieron mediante consultas simultáneas contra el sistema DMV sys.dm_os_process_memory en cada instancia del motor de base de datos:
SELECT
dopm.physical_memory_in_use_kb
FROM sys.dm_os_process_memory AS dopm;
Salida:
╔═══════════╦═══════════╗
║ Instance1 ║ Instance2 ║
╠═══════════╬═══════════╣
║ 1102872 ║ 1059812 ║
╚═══════════╩═══════════╝
Cada uno de estos tiene un poco más de 1 GB, ya que el uso total de la memoria física incluye más que solo el uso de la agrupación de almacenamiento intermedio, como se mencionó anteriormente.
¿Sería aconsejable ejecutar múltiples instancias como esta para permitir que cada base de datos haga un mejor uso de los recursos (suponiendo que el servidor tenga muchos recursos)?
Si las bases de datos en cada instancia son funcionalmente independientes, entonces es al menos viable ejecutar múltiples instancias de Express de esta manera, aunque deberá prestar especial atención a que la configuración y el mantenimiento pueden ser más complejos.
Puede que le sirva mejor usar otra edición, como la Edición para desarrolladores con todas las funciones (y muy económica), si el uso previsto coincide con la licencia). Tendría que decir mucho más sobre las circunstancias para obtener una respuesta clara sobre este punto.
SQL Server Database Engine
mediosA Single Instance
. Cada vez que tiene que cambiar el servidor de diálogo de conexión al que se está conectando (p. Ej.,localhost\dev
Vslocalhost\test
) que es una nueva "Instancia" o un nuevo "Motor". Solo pensé que aclararía eso.