Si je dispose de 8 Go de RAM sur un serveur et que je lance 4 instances de SQL Express, la limite de mémoire totale utilisée par SQL Server sera-t-elle de 1 Go ou 4 Go?
Chaque instance peut utiliser jusqu'à 1 Go de mémoire pour le pool de mémoire tampon . Chaque instance peut utiliser un peu plus de 1 Go au total, car toutes les allocations de mémoire ne passent pas par le pool de mémoire tampon. Dans votre cas, la mémoire maximale utilisée par les quatre instances pour le pool de mémoire tampon serait de 4 Go.
Pour confirmer, j’ai démarré deux instances du moteur de base de données SQL Server 2008 Express, effectué quelques tâches pour charger les pools de mémoire tampon (séparés), puis examiné la mémoire utilisée par instance de différentes manières, par exemple à l’aide de DBCC MEMORYSTATUS ou en comptant le nombre de mémoires tampons à l’aide du fichier DMV sys.dm_os_buffer_descriptors .
Les numéros d' utilisation de la mémoire physique ci-dessous ont été obtenus à l'aide de requêtes simultanées sur le système DMV sys.dm_os_process_memory du système sur chaque instance du moteur de base de données:
SELECT
dopm.physical_memory_in_use_kb
FROM sys.dm_os_process_memory AS dopm;
Sortie:
╔═══════════╦═══════════╗
║ Instance1 ║ Instance2 ║
╠═══════════╬═══════════╣
║ 1102872 ║ 1059812 ║
╚═══════════╩═══════════╝
Chacune d'entre elles dépasse légèrement 1 Go, car l'utilisation totale de la mémoire physique ne comprend pas uniquement l'utilisation du pool de mémoire tampon, comme indiqué précédemment.
Serait-il conseillé d'exécuter plusieurs instances de ce type pour permettre à chaque base de données de mieux utiliser les ressources (en supposant que le serveur dispose de beaucoup de ressources)?
Si les bases de données sur chaque instance sont fonctionnellement indépendantes, il est au moins réalisable d'exécuter plusieurs instances d'Express de cette manière, bien que vous deviez faire très attention à la configuration et la maintenance peut être rendue plus complexe.
Vous pourriez être mieux servi en utilisant une autre édition, telle que la Developer Edition (très peu coûteuse), si l'utilisation prévue correspond à la licence. Il vous faudrait en dire beaucoup plus sur les circonstances pour avoir une réponse claire sur ce point.
SQL Server Database Engine
moyensA Single Instance
. Chaque fois que vous devez changer le serveur de dialogue de connexion auquel vous vous connectez (par exemple,localhost\dev
vslocalhost\test
), il s'agit d'une nouvelle "instance" ou d'un nouveau "moteur". Je pensais juste que je clarifierais ça.