Microsoftのドキュメントhereによれば、言うことは、次のコマンドを呼び出す場合SQL Serverでは、DBCC SHRINKDATABASEに 'NOTRUNCATE'パラメータを使用する理由は何ですか?
DBCC SHRINKDATABASE(N'MyDb', NOTRUNCATE)
NOTRUNCATEパラメーターが渡されるため、解放されたスペースは、OSに返却されませんので、データベースだった現れることこと縮小/修正されていません。さらに、物理ファイルサイズが変更されないことを文書に記載しています。なぜあなたは今まで
DBCC SHRINKDATABASE(N'MyDb', 20) --20 is the percentage of free space that you want left in the database file after the database has been shrunk
または
DBCC SHRINKDATABASE(N'MyDb')
メモリを解放するために、データベースを縮小するの全体のポイントはありませんが、何をしますか?私はここで何が欠けていますか?
私はあなたが提供したリンクを読んでいると思っています。それはあなたのディスクドライブ上でデフラグをするようなものです(はい、私は昔です)。割り当てられたページをファイルの先頭に移動して、割り当てられていないスペースに移動しますが、スペースは同じにして縮めません。 –
これは明らかですが、ページが主要な順序から外れてしまうと、インデックスの断片化が発生する可能性が高くなります。 –