2017-11-13 5 views
0

圧縮テーブルに挿入すると、データがログファイルに圧縮されるのですか、チェックポイントが実行され、データファイルにデータが書き込まれるときに圧縮されますか?SQL Server圧縮

答えて

0

row compressionを使用すると、データ行はFixedVarの正規行形式でなく、CD(列記述子)形式になります。

行圧縮を有効にした表に行を挿入すると、その行はこの新しいCD形式でフォーマットされ(メモリー内)、この形式ではディスクに書き込まれます。

page compressionを適用すると、状況が異なります。ページの圧縮は、すべての行を挿入するには適用されません: ページがいっぱいになると圧縮が大幅なスペースの節約につながる場合にのみ、

SQL Serverは、ページ圧縮形式でデータを格納します。 ページがいっぱいになると、SQL Serverは圧縮を実行して、 新しく圧縮されたページに、圧縮前よりもさらに5行または25パーセントの 行を保存できるかどうかを評価します。その場合、ページ の圧縮が保持され、SQL Serverはデータを ページ圧縮形式で格納します。それ以外の場合、ページ圧縮は破棄され、 となり、データは行圧縮形式で保存されます。

注意すべきもう一つのこと:tempdbの中

データ修正のためにどちらのトランザクション・ログ・レコードも バージョンストアは、ページの圧縮をサポートしています。 SQL Serverには、 の各行をバージョンストアに配置するか、または トランザクションログに書き込む必要があるたびに、ページを解凍してアンカーレコードと辞書レコードを削除するには、 が必要です。

最後に考慮すべき事柄:

ページの圧縮は、3つの異なる段階で構成されています。まず、SQL サーバは行に対して行圧縮を実行します。

だから、できるだけ早くあなたが圧縮のいずれかのタイプを適用するよう、行が

CDフォーマットで保存され、そして、彼らはメモリにこの形式になっています(以前は/データログファイルに書き込まれるように)されています