web-dev-qa-db-ja.com

データベースの圧縮と圧縮

SQL Serverでのデータベースの圧縮と縮小は同じですか?テーブルを圧縮すると、クエリのパフォーマンスとDMLが低下しますか?

4
Liton Uddin

SQL Serverでは、データベース/データファイルの圧縮と圧縮は同じではありません。ファイルの圧縮(ちなみに 実際にはお勧めしません )は、データベース内のデータファイルから未使用の領域を削除するプロセスです。ファイルが作成されると、SQL Serverは、実際にそのスペースを満たすデータがない場合でも、(ファイルの作成方法に応じて)ファイルのサイズを変更してスペースを「予約」します。アイデアは、最終的にそこに何かを置くことです(ただし常にではない)。 縮小 この空のスペースを削除します。

データ圧縮 一方、オブジェクトを圧縮して、データファイル内のスペースを減らします。いくつかの異なるタイプの圧縮がありますが、それらすべてが最終的に行うことは、テーブルとインデックスに必要な物理スペースを削減することです。

1 MBのデータファイルに600 MB相当の実際のデータが含まれているとします。 2つの操作には次の影響があります。

  • 縮小:データファイルのサイズを600 MBまで縮小します。データの容量がまだ必要なため、これは制限です。
  • 圧縮:データのサイズを600 MBから少し小さくします(アルゴリズムがどれだけ圧縮できるかによって異なります)が、データファイルは1 GBのままです。

2番目の質問では、圧縮はCPUに負荷がかかります(データを圧縮解除して使用する必要があります)が、ディスクの使用量は少なくなりますIO(ディスクをプルするためのビットが少なくなります)。それ- might CPUに制約がある場合、クエリのパフォーマンスに影響します。適切に評価する唯一の方法は、テストすることです。

10
Mike Fal