Se eu tiver 8 GB de RAM em um servidor e executar 4 instâncias do SQL Express, o limite total de memória usado pelo SQL Server será de 1 GB ou 4 GB?
Cada instância pode usar até 1 GB de memória para o buffer pool . Cada instância pode usar um pouco mais de 1 GB no total, porque nem todas as alocações de memória passam pelo buffer pool. No seu caso, a memória máxima usada pelas quatro instâncias para o buffer pool seria de 4 GB.
Para confirmar, iniciei duas instâncias do SQL Server 2008 Express Database Engine, realizei alguma atividade para carregar os buffer pools (separados) e examinei a utilização da memória por instância de várias maneiras, por exemplo, usando o DBCC MEMORYSTATUS ou contando o número de buffers usando a DMV sys.dm_os_buffer_descriptors .
Os números de uso de memória física abaixo foram obtidos usando consultas simultâneas no DMV do sistema sys.dm_os_process_memory em cada instância do mecanismo de banco de dados:
SELECT
dopm.physical_memory_in_use_kb
FROM sys.dm_os_process_memory AS dopm;
Saída:
╔═══════════╦═══════════╗
║ Instance1 ║ Instance2 ║
╠═══════════╬═══════════╣
║ 1102872 ║ 1059812 ║
╚═══════════╩═══════════╝
Cada uma delas tem um pouco mais de 1 GB, pois o uso total de memória física inclui mais do que apenas o uso de buffer pool, conforme mencionado anteriormente.
Seria aconselhável executar várias instâncias como essa para permitir que cada banco de dados faça melhor uso dos recursos (supondo que o servidor tenha muitos recursos)?
Se os bancos de dados em cada instância forem funcionalmente independentes, é pelo menos viável executar várias instâncias do Express dessa maneira, embora você precise prestar muita atenção à configuração e manutenção, isso pode se tornar mais complexo.
Você poderá ser melhor atendido com outra edição, como a Developer Edition, com todos os recursos (e muito barata), se o uso pretendido corresponder à licença). Você precisaria dizer muito mais sobre as circunstâncias para obter uma resposta clara sobre esse ponto.
SQL Server Database Engine
significaA Single Instance
. Sempre que você precisar alterar o servidor de diálogo de conexão ao qual está se conectando (por exemplo,localhost\dev
vslocalhost\test
), isso é uma nova "Instância" ou um novo "Mecanismo". Só pensei em esclarecer isso.