データベースを圧縮する方法 (SQL Server Management Studio)

このトピックでは、SQL Server Management Studio のオブジェクト エクスプローラーを使用して、データベースを圧縮する方法について説明します。データベースは、そのデータベースの最小サイズより小さくすることはできません。最小サイズは、データベースが最初に作成されたときに指定されたサイズか、DBCC SHRINKFILE などのファイル サイズ変更操作によって最後に明示的に設定されたサイズのいずれかになります。たとえば、作成時にサイズを 10 MB に指定したデータベースが 100 MB まで拡張した場合、データベース内のすべてのデータを削除したとしても、縮小できる限界は 10 MB までです。

ファイルの末尾にあるデータのページを、ファイルの先頭に近い占有されていない領域に移動することにより、データ ファイルが圧縮され、領域が回復されます。ファイル末尾に十分な空き領域が作成された場合は、ファイル末尾のデータ ページの割り当てを解除して、ファイル システムに戻すことができます。

注記注意

ファイルを圧縮するために移動されたデータは、ファイル内のあらゆる使用可能な場所に分散される場合があります。これにより、インデックスの断片化が発生し、広範なインデックスを検索するクエリのパフォーマンスが低下する場合があります。断片化を解消するには、圧縮後にファイルのインデックスを再構築することを検討してください。

データベースを圧縮するには

  1. オブジェクト エクスプローラーで、SQL Server データベース エンジンのインスタンスに接続し、そのインスタンスを展開します。

  2. [データベース] を展開し、圧縮するデータベースを右クリックします。

  3. [タスク][圧縮] の順にポイントし、[データベース] をクリックします。

  4. 必要に応じて、[未使用領域の解放前にファイルを再構成する] チェック ボックスをオンにします。このオプションをオンにした場合、[圧縮後のファイルの最大空き領域] の値を指定する必要があります。

    このオプションをオンにすると、DBCC SHRINKDATABASE を実行するときに target_percent 値を指定するのと同じ効果があります。このオプションをオフにすると、DBCC SHRINKDATABASE を実行するのと同じ効果があります。既定では、このオプションはオフになっています。

  5. データベースを圧縮した後に、データベース ファイル内に残す空き領域の最大パーセンテージを入力します。0 ~ 99 の値を指定できます。このオプションは、[未使用領域の解放前にファイルを再構成する] がオンになっている場合にのみ使用できます。

  6. [OK] をクリックします。