Neu MS SQL Express - Größe der Datenbank - wie viel ist noch frei? Wie ermitteln?

JohnFrea

Sehr aktives Mitglied
21. September 2017
973
305
Hallo,

ich habe mal zum Spaß ein Update von 1.5 auf 1.6 mit einer Kopie unserer Datenbank in einer Testumgebung laufen lassen und war überrascht, trotz MS SQL Express trotz Filestrem in einen Fehler zu laufen

Code:
Speicherplatz für das "dbo.pf_logbuch".'PK_dbo_pf_logbuch'-Objekt in der eazybusiness-Datenbank konnte nicht belegt werden, da die Dateigruppe "PRIMARY" voll ist.

Auf Hinweis des JTL Supports habe ich das automatische Löschen der Logbücher in den Globalen Einstellungen auf 1 Monat beschränk und konnte so 1,5 GB freigeben. Das Update läuft jetzt erstmal.

...was mich zu meiner Frage bringt: Wie und wo kann ich im SQL Management Studio sehen, wie viel Platz tatsächlich noch frei ist, bis es wieder zu einer vollen Datenbank kommt? Die Infos bzgl. Datenbankgröße und Freiem Speicher scheinen mir uneindeutig, da auch Filstream Dateien mit einbezogen werden.
Ist Freier Speicher der wirklich noch freie Speicher oder nur der bis zum nächsten Wachtumsschritt der DB? Oder sieht man es an dem belegten Speicher wie hier im Anhang?

Wäre toll, wenn jemand etwas Licht ins Dunkle bringen könnten.

Vielen Dank

JohnFrea
 

Anhänge

  • sql-groesse.png
    sql-groesse.png
    17 KB · Aufrufe: 115

SebastianB

Moderator
Mitarbeiter
6. November 2012
2.084
339
Tatsächlich ist die Antwort gar nicht so einfach - hängt von mehreren Faktoren ab. sp_spaceused ist ein guter Einstiegspunkt - wenn da der "space used" der Datendatei (nicht Log, nicht Filestream) sich den 9GB nähert, sollte man sich Gedanken machen.
Die tatsächliche Größe der MDF, LDF oder BAK Datei ist kein ausreichendes Kriterium.
Nähert man sich der Grenze und hat einen schnellen Prozessor, kann man über die SQL-Server-Datenkompression noch was Luft nach oben schaffen.
 

JohnFrea

Sehr aktives Mitglied
21. September 2017
973
305
space used beinhaltet aber Log und bringt daher auch nicht so viel.

Aus den Links habe ich probiert:

Code:
SELECT DB_NAME() AS "MeineDatenbank",
name AS FileName,
size/128.0 AS CurrentSizeMB,
size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT)/128.0 AS FreeSpaceMB
FROM sys.database_files;

Das liefert mehr Details.

Fazit: Mit 1.6 ist die DB um 10% (1GB) gewachsen, obwohl wir vorher aufgeräumt haben.
 

Anhänge

  • dbsize.png
    dbsize.png
    66 KB · Aufrufe: 122

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.873
562
@JohnFrea
ich denke, die ursprüngliche Frage aus diesem Thread ist gelöst.
Ich wollt nur noch eine Anmerkung zu deinem Screenshot machen:
dein Transaktionsprotokoll ist riesengroß. Das ist ja zunächst mal nicht unmittelbar schädlich, aber oft weist das darauf hin dass Lücken im Backupplan bestehen bzw. das Thema Datensicherung noch nicht richtig durchdacht wurde.

...wollt es nur mal anmerken - vielleicht als Motivation, das Thema mal zu überdenken ;)
 
  • Gefällt mir
Reaktionen: recent.digital

JohnFrea

Sehr aktives Mitglied
21. September 2017
973
305
@mh1 Danke für den Hinweis.
Der Screenshot stammt von einem reinen Testsystem auf dem ein Backup unserer Wawi 1.5 eingespielt und dann auf 1.6 geupdatet wurde.
Und ja, ein Backup wurde seit dem noch nicht gemacht - aber wie gesagt, reines Testsystem...