Nein, Sie können nicht überprüfen, warum es langsam läuft, aber ich kann Ihnen einige Hinweise geben:
1) In SQL 2005 wurde die Verwaltung von nicht gruppierten Indizes von der Storage Engine (meinem Team) zum Abfrageprozessor geändert. Dies hat viele Nebenwirkungen, von denen eine die Geschwindigkeit ist, mit der Heap-Datenseiten durch Verkleinern verschoben werden können. Alle nicht gruppierten Indexdatensätze enthalten einen Backlink zu dem Datensatz, den sie indizieren. Im Fall eines Heaps ist dies eine physische Verknüpfung zu einer Datensatznummer auf einer bestimmten Datenseite. Wenn eine Heap-Datenseite durch Verkleinern verschoben wird, müssen alle nicht gruppierten Indexdatensätze, die mit Datensätzen auf dieser Seite verknüpft sind, mit dem neuen Speicherort der Seite aktualisiert werden. Im Jahr 2000 wurde dies von der Storage Engine selbst sehr effizient durchgeführt. Ab 2005 muss dies durch Aufrufen des Abfrageprozessors erfolgen, um die nicht gruppierten Indexdatensätze zu aktualisieren. Dies ist manchmal bis zu 100-mal langsamer als im Jahr 2000.
2) Off-Row-LOB-Werte (entweder tatsächliche LOB-Datentypen oder Zeilenüberlaufdaten) enthalten keinen Backlink zu den Daten oder Indexdatensätzen, zu denen sie gehören. Wenn eine Seite mit LOB-Datensätzen verschoben wird, muss die gesamte Tabelle oder der Index, zu dem sie gehören, gescannt werden, um herauszufinden, welche Daten / Indexdatensätze auf sie verweisen, damit sie mit dem neuen Speicherort aktualisiert werden können. Das ist auch sehr, sehr langsam.
3) Möglicherweise wird die Datenbank von einem anderen Prozess verwendet, der das Schrumpfen blockiert und auf die Sperren wartet, die zum Verschieben von Seiten erforderlich sind.
4) Möglicherweise ist die Snapshot-Isolation aktiviert, und durch das Verkleinern können Seiten mit Versionsspeicher-Links erst verschoben werden, wenn die Transaktionen abgeschlossen sind, für die diese älteren Versionen erforderlich sind.
5) Ihr E / A-Subsystem ist möglicherweise nicht ausreichend mit Strom versorgt. Eine höhere Festplattenwarteschlangenlänge als niedrige einstellige Werte bedeutet, dass sich Ihr E / A-Subsystem im Engpass befindet.
Einige oder alle davon können zu langsamen Schrumpflaufzeiten beitragen.
Im Allgemeinen möchten Sie jedoch nicht schrumpfen. Weitere Informationen finden Sie in diesem Blogbeitrag: Warum Sie Ihre Datendateien nicht verkleinern sollten .
Hoffe das hilft!