web-dev-qa-db-ja.com

行圧縮とページ圧縮の違いを説明してください

どれを適用するか、いつ圧縮を適用するのが適切な時期かを判断しようとしています。このコミュニティから洞察を得るためにこの質問を投稿しています。私はいくつかの記事を読みましたが、DBアドミニストレーターでこれに対処する場所が必要でした。

10

これは、行vページ(しゃれが意図されていない)圧縮の優れたリファレンスと説明です。 http://blogs.lessthandot.com/index.php/datamgmt/dbprogramming/how-sql-server-data-compression/

簡単に言うと、ページ圧縮は行レベルの圧縮に含まれているアルゴリズムを包含し、プレフィックス圧縮とディクショナリ圧縮もカバーします。プレフィックスとディクショナリ圧縮は、データ内のパターンを検出し、それらをより小さい値に置き換えます。解凍中に逆の処理を行い、データを元の値に復元します。

行レベルでは、メタデータの削減や、CHAR(1000)に格納されている文字「Y」のような未使用のスペースの削除など、圧縮の決定が容易になります。

参照された記事は、これをより詳細に説明しています。

6
John

テーブルの束を決定するために、プロシージャ "sp_estimate_data_compression_savings"を実行できます。

exec sys.sp_estimate_data_compression_savings  @Schema,@Table,NULL,NULL,ROW;
exec sys.sp_estimate_data_compression_savings  @Schema,@Table,NULL,NULL,PAGE;

これは、特定の各テーブルの節約量を判断するのに役立ちます。

私の経験から、ほとんどの場合、PAGE圧縮の方が優れています。

6
Slava Murygin