Benutzer mit den meisten Antworten
Prüfung ob Speichergrenze erreicht

Frage
-
Hallo,
ich möchte in meiner Anwendung überwachen, wann die maximale Speichermenge einer Datenbank der Express Edition (10 GB) erreicht wird.
Ich habe heraus gefunden, dass ich Informationen hierzu abrufen kann über die Prozedur 'sp_spaceused'.
Es werden folgende Informationen ausgegeben:database_size, unallocated space, reserved, data, unused
Ich möchte die aktuelle Größe auf einen Grenzwert abprüfen um rechtzeitig den Admin meiner Anwendung zu benachrichtigen. Stehen z.B. nur noch 500 MB der 10 GB zur Verfügung (Grenzwert), versende ich eine eMail.
Welcher der oben genannten Werte soll ich für diesen Vergleich nutzen?
Danke und viele Grüße,
Christian- Bearbeitet ChristianHavelDE Dienstag, 11. August 2015 13:06 weitere Infos
Antworten
-
- Als Antwort markiert ChristianHavelDE Mittwoch, 12. August 2015 11:50
Alle Antworten
-
Hallo Christian,
wenn ich mich recht entsinne, wird für das Größenlimit bei der Express Edition nur die Größe der Datendateien berücksichtigt, nicht aber die Log Größe und auch nicht Filestream. "Reserved" wäre also hier am ehesten die gesuchte Größe.
Alternativ kannst Du es auch über die System Views abfragen:
-- Netto Datengröße SELECT size * 8.0 / 1024 AS MB FROM sys.database_files WHERE type = 0; -- Log File Größe SELECT size * 8.0 / 1024 AS MB FROM sys.database_files WHERE type = 1; exec sp_spaceused
Siehe sys.database_files (Transact-SQL)Olaf Helper
[ Blog] [ Xing] [ MVP] -
-
Hallo Christian,
sozusagen, die Express Edition reklamiert die Größen-Überschreitung dann, wenn sich die Datendatei sich über die 10 GB vergrößern will, weil sie z.B. voll ist und neue Daten eingefügt werden sollen.
Man kann bei der Anlage einer Datenbank auch eine Initialgröße angeben, wenn die das Limit überschreitet, gibt es auch einen Fehler, obwohl die Datenbank-Datei selbst leer ist; Beispiel mit SQL Server 2008 Express, wo das Limit noch bei 4 GB lag:
Olaf Helper
[ Blog] [ Xing] [ MVP] -
Hallo Christian,
Die Datenbank geht dann erstmal nicht in die "Krätsche" aber sie kann dann nicht mehr weiter wachsen.
Wenn also die Datenbankdatei ihr Limit von 10 GB erreicht hat wird die Anwendung diese auch nutzen können aber halt nicht mehr als 10 GB. Sie kann danach nicht mehr weiter wachsen und somit kannst du auch keine neuen Daten mehr speichern. Wenn von den 10 GB noch 40 % frei sind dann hast du halt noch genau 4 GB Platz in der Datenbank.
Gruß
Benjamin Hoch
MCSE: Data Platform,
MCSA: Windows Server 2012, -
- Als Antwort markiert ChristianHavelDE Mittwoch, 12. August 2015 11:50