Wenn ein Server über 8 GB RAM verfügt und ich 4 Instanzen von SQL Express ausführe, beträgt das von SQL Server verwendete Gesamtspeicherlimit 1 GB oder 4 GB?
Jede Instanz kann bis zu 1 GB Speicher für den Pufferpool verwenden . Jede Instanz kann insgesamt etwas mehr als 1 GB verwenden, da nicht alle Speicherzuordnungen über den Pufferpool erfolgen. In Ihrem Fall beträgt der maximale Arbeitsspeicher, der von den vier Instanzen für den Pufferpool verwendet wird, 4 GB.
Zur Bestätigung habe ich zwei Instanzen des SQL Server 2008 Express-Datenbankmoduls gestartet , einige Aktivitäten zum Laden der (separaten) Pufferpools ausgeführt und dann die Speicherauslastung pro Instanz auf verschiedene Arten untersucht, z. B. mit DBCC MEMORYSTATUS oder durch Zählen der Anzahl der Puffer unter Verwendung der DMV sys.dm_os_buffer_descriptors .
Die folgenden physischen Speicherbelegungsnummern wurden mit gleichzeitigen Abfragen des System-DMV sys.dm_os_process_memory für jede Instanz des Datenbankmoduls ermittelt:
SELECT
dopm.physical_memory_in_use_kb
FROM sys.dm_os_process_memory AS dopm;
Ausgabe:
╔═══════════╦═══════════╗
║ Instance1 ║ Instance2 ║
╠═══════════╬═══════════╣
║ 1102872 ║ 1059812 ║
╚═══════════╩═══════════╝
Jede davon übersteigt etwas 1 GB, da die gesamte physische Speichernutzung, wie bereits erwähnt, mehr als nur die Pufferpoolnutzung umfasst.
Wäre es ratsam, mehrere Instanzen wie diese auszuführen, damit jede Datenbank Ressourcen besser nutzen kann (vorausgesetzt, der Server verfügt über viele Ressourcen)?
Wenn die Datenbanken für jede Instanz funktionsunabhängig sind, können mindestens mehrere Express-Instanzen auf diese Weise ausgeführt werden. Sie müssen jedoch sorgfältig auf die Konfiguration achten, und die Wartung kann komplexer werden.
Wenn Sie eine andere Edition verwenden, z. B. die voll funktionsfähige (und sehr kostengünstige) Developer Edition, sind Sie möglicherweise besser bedient, wenn die beabsichtigte Verwendung mit der Lizenz übereinstimmt. Sie müssten viel mehr über die Umstände sagen, um eine klare Antwort auf diesen Punkt zu erhalten.
SQL Server Database Engine
MittelA Single Instance
. Jedes Mal, wenn Sie den Verbindungsdialogserver ändern müssen, zu dem Sie eine Verbindung herstellen (z. B.localhost\dev
vslocalhost\test
), handelt es sich um eine neue "Instanz" oder eine neue "Engine". Ich dachte nur, ich würde das klären.