Benutzer mit den meisten Antworten
Verkleinern einer Tabelle

Frage
-
Guten Morgen,
ich habe eine Tabelle in unserer Datenbank (Enterprise 10.0.2531.0), die bis vor kurzen viele GB Speicher hatte.
Durch eine Umstrukturierung ist die Tabelle sehr klein.
Ich habe jetzt gesehen, dass jetzt statt dataSize unusedSize sehr groß ist.
Wie ist das beste Vorgehen, um diese Tabelle zu bereinigen?
Vielen Dank für die Hilfe.
Gregor Schönhard
Antworten
-
Hallo Gregor,
da nach der Änderung sich "unusedsize" vergrößert hat, ist die Tabelle korrekt bereinigt worden. Beim Löschen von LOB Felder und in anderen Situationen kann es vorkommen, das der Speicher nicht korrekt freigegeben wird, dann kann man den Befehl DBCC CLEANTABLE anwenden; hier aber scheints nicht nötig (<= in der de-DE Bol ist die Seitenüberschrift falsch, da steht DBCC CHECKTABLE, inhaltlich geht es aber um CleanTable; in en-US ist es korrekt).
Was die Datendatei-Größe betrifft, schließe ich mich den anderen an, der freie Speicherplatz wird wieder verwendet und allein von daher macht es keinen Sinn, sie zu shrinken.
Olaf Helper
* cogito ergo sum * errare humanum est * quote erat demonstrandum *
Wenn ich denke, ist das ein Fehler und das beweise ich täglich
Blog Xing- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 4. August 2011 11:41
-
AFAIK steht dieser Platz steht anderen Objekten der Datenbank zur Verfügung.
Du könntest ein DBCC Shrinkdatabase starten. Aber bedenke, was verkleinert wird, muß auch wieder wachsen. Außerdem fördert das Shrinkdatabse die Frakmentierung der Datenbank.
- Als Antwort vorgeschlagen Falk Krahl Donnerstag, 21. Juli 2011 08:22
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 4. August 2011 11:41
Alle Antworten
-
AFAIK steht dieser Platz steht anderen Objekten der Datenbank zur Verfügung.
Du könntest ein DBCC Shrinkdatabase starten. Aber bedenke, was verkleinert wird, muß auch wieder wachsen. Außerdem fördert das Shrinkdatabse die Frakmentierung der Datenbank.
- Als Antwort vorgeschlagen Falk Krahl Donnerstag, 21. Juli 2011 08:22
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 4. August 2011 11:41
-
Wenn du kein akutes Speicherproblem auf dem Server hast, belass es dabei. Der SQL Server verwaltet seinen Speicher schon so optimal er kann.
Wie Christa schon schrieb, kannst du mit DBCC Shrinkdatabase den nicht verwendeten Speicherplatz pro Datenbank freigeben. ABER! Das sollte wirklich nur in Ausnahmefällen gemacht werden!
Beste Grüße,
Andreas Richter
http://www.anrichter.net -
Hallo Gregor,
da nach der Änderung sich "unusedsize" vergrößert hat, ist die Tabelle korrekt bereinigt worden. Beim Löschen von LOB Felder und in anderen Situationen kann es vorkommen, das der Speicher nicht korrekt freigegeben wird, dann kann man den Befehl DBCC CLEANTABLE anwenden; hier aber scheints nicht nötig (<= in der de-DE Bol ist die Seitenüberschrift falsch, da steht DBCC CHECKTABLE, inhaltlich geht es aber um CleanTable; in en-US ist es korrekt).
Was die Datendatei-Größe betrifft, schließe ich mich den anderen an, der freie Speicherplatz wird wieder verwendet und allein von daher macht es keinen Sinn, sie zu shrinken.
Olaf Helper
* cogito ergo sum * errare humanum est * quote erat demonstrandum *
Wenn ich denke, ist das ein Fehler und das beweise ich täglich
Blog Xing- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 4. August 2011 11:41