Ich erstelle eine Anwendung, in die ich SQL Server 2012 Express als primären Datenspeicher einbetten möchte. Beim Testen auf meinem Entwicklungscomputer (Win7-32 mit 3 GB RAM) habe ich nie beobachtet sqlservr.exe
, dass mehr als 1 GB RAM verwendet werden, wie dies aufgrund der veröffentlichten Hardware-Skalierungsbeschränkungen für die Express Edition von SQL Server zu erwarten war .
Anschließend habe ich meine Anwendung auf einen Server-Computer (Win Server 2008R2 64-Bit mit 16 GB RAM) verschoben, um die Leistung dort zu bewerten. Ich war überrascht, dass der sqlservr.exe
Prozess schnell auf ca. 9,5 GB RAM erweitert wurde und dort blieb.
Ich habe es ein paar Mal neu gestartet, um festzustellen, ob dies Auswirkungen hat, aber jedes Mal kehrte der Prozess schnell auf ~ 9,5 GB zurück. Jetzt bin ich mit Sicherheit froh, dass SQL Server Express meinen Arbeitsspeicher verwendet, aber ich möchte wissen, ob dies das erwartete Verhalten ist, damit ich mich nicht auf Leistungsebenen verlasse, die auf einer falschen RAM-Auslastung basieren.
Zu Ihrer Information, die Version von SQL Server auf meinem Server-Computer SELECT @@VERSION
lautet laut :
Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64)
Oct 19 2012 13:38:57
Copyright (c) Microsoft Corporation
Express Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
Meine 9,5 GB-Nummer stammt aus dem "Private Working Set" im Task-Manager. Die erste Tabelle der Ausgabe von DBCC memorystatus
(wenn auch auf einem jetzt inaktiven Server) ist unten:
PROCESS/SYSTEM COUNTS
Available Physical Memory 5543616512
Available Virtual Memory 8734902411264
Available Paging File 22471094272
Working Set 9664200704
Percent of Committed Memory in WS 99
Page Faults 2627510
System physical memory high 1
System physical memory low 0
Process physical memory low 0
Process virtual memory low 0
Ausgabe der von Spaghettidba vorgeschlagenen Abfrage zu sys.dm_os_memory_clerks
:
MEMORYCLERK_SQLBUFFERPOOL 1410
OBJECTSTORE_LOCK_MANAGER 256
MEMORYCLERK_SQLCLR 38
MEMORYCLERK_SOSNODE 26
CACHESTORE_SQLCP 11
plus ~ 10 kleinere Einträge, die weniger als 30 MB ergeben.
MEMORYCLERK_SQLBUFFERPOOL 1410 OBJECTSTORE_LOCK_MANAGER 256 MEMORYCLERK_SQLCLR 38 MEMORYCLERK_SOSNODE 26 CACHESTORE_SQLCP 11
Und dann noch ein paar kleine, die sich zu <30 MB summieren. Kommt mir komisch vor. -arg- bei der Kommentarformatierung.