Dies ist eine Folgefrage zu einer Frage, die ich gestern gestellt habe: Kann ich eine Masseneinfügung in eine leere, seitenkomprimierte Tabelle vornehmen und eine vollständige Komprimierung erhalten? Die Antwort auf diese Frage (umschrieben von Randi Vertongens ausgezeichneter Antwort) lautet Ja, erfordert jedoch, dass die Masseneinfügung eine Sperre auf Tabellenebene aufweist. Andernfalls nimmt die Masseneinfügung eine Sperre auf Zeilenebene vor und führt nur eine Zeilendatenkomprimierung durch. Dies wirft die Frage auf: Wie kann ich anschließend feststellen, welche Komprimierung angewendet wird?
Gehen Sie folgendermaßen vor, um zeilenkomprimierte Daten in einer theoretisch seitenkomprimierten Tabelle zu
erstellen : 1. Erstellen Sie eine Tabelle mit DATA_COMPRESSION=PAGE
und aktivieren Sie nicht die sp_tableoption
Option "Tabellensperre beim Massenladen" für diese Tabelle.
2. Verwenden Sie bcp, um die Daten aus einer Flatfile in die neue Tabelle einzufügen, ohne jedoch die -h TABLOCK
Option zum Sperren der Tabelle anzugeben .
Das Ergebnis ist eine Tabelle, in der die Daten auf Zeilenebene komprimiert werden (kleiner als eine nicht komprimierte Tabelle, aber größer als eine seitenkomprimierte Tabelle). Wenn Sie jedoch die sys.allocation_units
Katalogtabelle überprüfen, wird die Datenkomprimierung als Seite angezeigt.
Die Frage
Wenn der Tisch Datenzuordnung für Seitenkomprimierung wie in diesem Szenario ist, was kann ich tun , wenn die , um herauszufinden , Daten in dieser Tabelle Seite komprimiert?