Se eu tiver 8 GB de RAM em um servidor e executar 4 instâncias do SQL Server Express, o limite total de memória usado pelo SQL Server será de 1 GB ou 4 GB?
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)?
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 pools de buffer (separados) e, em seguida, examinei a utilização de memória por instância de várias maneiras, por exemplo, usando DBCC MEMORYSTATUS ou contando o número de buffers usando o DMV sys.dm_os_buffer_descriptors .
Os números de uso de memória física abaixo foram obtidos usando consultas simultâneas no sistema DMV sys.dm_os_process_memory em cada instância do mecanismo de banco de dados:
Resultado:
Cada um deles tem um pouco mais de 1 GB, pois o uso total da memória física inclui mais do que apenas o uso do buffer pool, conforme mencionado anteriormente.
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 seja necessário prestar muita atenção à configuração e à manutenção que podem ser mais complexas.
Você pode ser mais bem servido usando outra edição, como a Developer Edition completa (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 este ponto.
Cada instância conta separadamente, pois possui um processo separado.
No SQL Express, o mecanismo de banco de dados pode consumir apenas 1 GB de RAM e nenhum banco de dados pode ser maior que 10 GB.
Portanto, 4 instâncias ainda teriam que compartilhar esse 1 GB de RAM.
Você pode descobrir muito mais em http://msdn.microsoft.com/en-us/library/cc645993(v=SQL.110).aspx .
Uma discussão semelhante aqui no Stack Overflow diz que esta é a resposta certa BTW, então não há necessidade de downvote: https://stackoverflow.com/questions/1169634/limitations-of-sql-server-express
Esta página diz o mesmo, embora seja sobre o SQL Server Express 2005: http://www.edugeek.net/forums/windows-server-2000-2003/55183-sql-server-express-2005-memory-limit- por-instance.html