Leere Zeilen in SQLExpress 2008
-
Hallo Leute,
irgendwie kann ich leider nicht so recht die benötigte Information finden.
Ich habe eine SQLExpress2008 DB. Von Zeit zu Zeit lösche ich mittels Delete alte Einträge.
Hierdurch habe ich dann aber später leere Zeilen. Wie werde ich die leeren Zeilen ganz los?
Gibt es dafür einen Befehl, den ich mit einer App ausführen kann?Z.B. so ähnlich wie SHRINK?
Danke für Eure Mühe.
Gruß
SqlUser
-
Dieser Thread wurde von Moderator/in Dravere aus dem Forum C# und .NET in das Forum Datenbanken verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Meinst du Truncate?
Bzw. was meinst du mit "leeren Zeilen"?
-
@SQLUser
Es gibt keine "leeren Zeilen" bei MSSQL, bloss Platz in Tables der aktuell nicht verwendet wird.
MSSQL orgianisiert das allerdings selbst, d.h. der Platz wird früher oder später automatisch für neue Zeilen wiederverwendet.Was du nicht erwarten kannst, ist dass MSSQL den Speicher 100% effizient verwaltet. Du musst damit rechnen dass bis zu 50% des Datenbank-Files "frei" sind - wobei es typischerweise weniger ist. Je nach Anwendung sogar viel weniger.
Was MSSQL nicht macht:
- Tabellen selbständig vollständig reorganisieren, so dass überhaupt kein Speicherplatz verschwendet wird
- Den "freien" Speicherplatz wirklich freigeben, so dass das File auf der Platte kleiner wird
Wenn du das haben möchtest, dann musst du es manuell anwerfen.
ad 1: http://msdn.microsoft.com/en-us/library/ms177571(v=sql.100).aspx
Was man mit Tabellen machen kann die keinen clustered Index haben weiss ich nicht.ad 2: http://msdn.microsoft.com/en-us/library/ms190488(v=sql.100).aspx
und http://msdn.microsoft.com/en-us/library/ms189493(v=sql.100).aspx