SQL Server 2008 のコンテキストで。
データ型の列からデータ型の同じテーブルTextの別の列への値の圧縮と移行に取り組んでいます。Image今のところ、Text 列は削除しません。そのため、その列のすべての値を NULL に設定しています。
NULL に設定すると、スペースがすぐに得られますか? つまり、データベースのサイズを縮小しますか?
列を削除すると、それが行われますか?
そうでない場合、その未使用スペースを要求するには、さらにどのようなことを行う必要がありますか?
SQL Server 2008 のコンテキストで。
データ型の列からデータ型の同じテーブルTextの別の列への値の圧縮と移行に取り組んでいます。Image今のところ、Text 列は削除しません。そのため、その列のすべての値を NULL に設定しています。
NULL に設定すると、スペースがすぐに得られますか? つまり、データベースのサイズを縮小しますか?
列を削除すると、それが行われますか?
そうでない場合、その未使用スペースを要求するには、さらにどのようなことを行う必要がありますか?
テキスト列は、テーブルの単一行の列値に対して最小 16 文字の値を取ります。空き領域を要求するには、この列のすべての値を null に設定した後、データとインデックスを再編成します。
この領域を再利用するには、DBCC CLEANTABLE を使用するか、データベースを圧縮する必要があります。
構文: DBCC CLEANTABLE( データベース名, "テーブル名またはビュー名")
データベースのサイズを実際に縮小するには、次のことを行う必要があります。
断片化の原因となるため、縮小はお勧めしません。ただし、データベースのディスク フットプリントは自動的には減少しません。内部に空のスペースがあるデータベースが作成され、データベースをそれ以上大きくすることなく、より多くのデータ/インデックスで満たすことができます。
値を NULL に設定しても違いはありません。列を削除しても、それだけではディスク領域が解放されません。また、インデックスを再構築する必要があります:ドロップされた列によって占有されるディスク容量