none
Verkleinern einer Tabelle RRS feed

  • 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

    Donnerstag, 21. Juli 2011 06:17

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
    Donnerstag, 21. Juli 2011 16:12
  • 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.

    Donnerstag, 21. Juli 2011 07:25

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.

    Donnerstag, 21. Juli 2011 07:25
  • 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
    Donnerstag, 21. Juli 2011 07:46
  • 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
    Donnerstag, 21. Juli 2011 16:12