Tatsächliche verwendeter Speicher MS SQL Express 2008
Hallo zusammen,
gibt es eine Möglichkeit den gerade tatsächlich verwendeten Speicher eines MS SQL 2008 Express Datenbankserver auszulesen?
Die Expressversion ist ja auf 1 GB beschränkt. Mich würde interessieren, wieviel davon tatsächlich benutzt wird.
Im Taskmanager oder im SQL Server Managenment Studio wird mir nur der gesamte verwendbare Speicher angezeigt (~1,5GB).
Hintergrund ist, das unsere Warenwirtschaft damit läuft und wir immer wieder Engpässe haben. Hier wäre es hilfreich zu wissen, ob das Problem einfach an der Speicherbegrenzung liegt (Maximal 20 Benutzer, Datenbankgröße ~ 3GB)
Gruß Wolfgang.
gibt es eine Möglichkeit den gerade tatsächlich verwendeten Speicher eines MS SQL 2008 Express Datenbankserver auszulesen?
Die Expressversion ist ja auf 1 GB beschränkt. Mich würde interessieren, wieviel davon tatsächlich benutzt wird.
Im Taskmanager oder im SQL Server Managenment Studio wird mir nur der gesamte verwendbare Speicher angezeigt (~1,5GB).
Hintergrund ist, das unsere Warenwirtschaft damit läuft und wir immer wieder Engpässe haben. Hier wäre es hilfreich zu wissen, ob das Problem einfach an der Speicherbegrenzung liegt (Maximal 20 Benutzer, Datenbankgröße ~ 3GB)
Gruß Wolfgang.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 256084
Url: https://administrator.de/forum/tatsaechliche-verwendeter-speicher-ms-sql-express-2008-256084.html
Ausgedruckt am: 10.04.2025 um 18:04 Uhr
4 Kommentare
Neuester Kommentar
Hallo,
wenn Du im Taskmanager den Prozess sqlservr.exe anschaust siehts Du den verwendeten Speicher.
Bei einer 3GB DB kann es gut sein, dass das die Bremse ist.
Bei uns war ein weiteres Argument für den Wechsel von der Express zur Standard, dass Werkzeuge vorhanden sind um die DB regelmäßig automatisch zu "reorganisieren". Wir haben von SQL2005 Express auf 2008 Standard gewechselt und es ist deutlich besser geworden. Allerdings ist auch der "Unterbau" jetzt neuer.
Henning
wenn Du im Taskmanager den Prozess sqlservr.exe anschaust siehts Du den verwendeten Speicher.
Bei einer 3GB DB kann es gut sein, dass das die Bremse ist.
Bei uns war ein weiteres Argument für den Wechsel von der Express zur Standard, dass Werkzeuge vorhanden sind um die DB regelmäßig automatisch zu "reorganisieren". Wir haben von SQL2005 Express auf 2008 Standard gewechselt und es ist deutlich besser geworden. Allerdings ist auch der "Unterbau" jetzt neuer.
Henning
Moin moin,
Gruß L.
Zitat von @vossi31:
wenn Du im Taskmanager den Prozess sqlservr.exe anschaust siehts Du den verwendeten Speicher.
Jup, da würd ich auch schauen.wenn Du im Taskmanager den Prozess sqlservr.exe anschaust siehts Du den verwendeten Speicher.
Bei einer 3GB DB kann es gut sein, dass das die Bremse ist.
Ja. Wenn man einepPerformate DB möchte ist man gut beraten dafür zu sorgen das der SQL Server ausreihend RAM hat (unterstützt) um die gesamte DB aufzunehmen.Gruß L.
Die 1GB Begrenzung trifft nur den SQL Buffer Pool (das ist der Bereich, den der SQL Server zum Cachen nimmt), deswegen siehst Du im Taskmanager auch mehr, weil der SQL Server noch fürs Programm Platz braucht und noch ein paar andere interne Buffer hat.
Zum Nachschauen, wieviel von welcher Datenbank gecached wird, kann man folgende Query verwenden:
Ein weiterer Anhaltspunkt ist die Page Life Expectancy, der Wert gibt an, wie lange eine Datenseite im Cache ist (in Sekunden), bevor sie von neuen Daten verdrängt wird. Je höher umso besser.
Wir haben auf unserem ERP System auf der Datenbank eine PLE von über 60000.
Bei Werten unter 1000 ist der Cache deutlich zu klein.
Aus der PLE kann man auch auf die I/O Belastung schliessen. Bei 1 GB Cache und eine PLE von 100 (Beispielswert), bedeutet das, daß jede Seite im Cache nach 100 Sekunden von einer neugeladenen verdrängt wird, also in 100 Sekunden der 1GB Cache einmal durchläuft, das sind 10MB/s Lesezugriffe.
Zum Nachschauen, wieviel von welcher Datenbank gecached wird, kann man folgende Query verwenden:
SELECT DB_NAME(database_id) AS [Database Name],
COUNT(*) * 8/1024.0 AS [Cached Size (MB)]
FROM sys.dm_os_buffer_descriptors
WHERE database_id > 4 -- system databases
AND database_id <> 32767 -- ResourceDB
GROUP BY DB_NAME(database_id)
ORDER BY [Cached Size (MB)] DESC;
SELECT OBJECT_NAME, cntr_value AS [Page Life Expectancy]
FROM sys.dm_os_performance_counters
where counter_name = N'Page life expectancy';
Bei Werten unter 1000 ist der Cache deutlich zu klein.
Aus der PLE kann man auch auf die I/O Belastung schliessen. Bei 1 GB Cache und eine PLE von 100 (Beispielswert), bedeutet das, daß jede Seite im Cache nach 100 Sekunden von einer neugeladenen verdrängt wird, also in 100 Sekunden der 1GB Cache einmal durchläuft, das sind 10MB/s Lesezugriffe.