私は5 TBデータベースファイル(理由は尋ねないでください)をクリーンアップしています。既にTBを解放できたので、おそらく2.5 TBになります。
ベストプラクティスのアドバイスはさておき、このファイルを圧縮する必要があります。私は現在このステートメントを実行しています:
DBCC SHRINKFILE(1,4000000)
ときどきpageiolatch_shとpageiolatch_exを待っているため、何かが実行されていることがわかります。ただし、24時間の実行時間後、データベースは1ページだけ縮小していません。通常、上記のようにファイル圧縮を実行すると、すぐにファイルサイズへの影響を確認できます。以前は、データベースを1 GBだけ縮小しようとしましたが、ファイルサイズがまったく変化しませんでした。 24時間後に止めました。
この問題はしばらく続いていますが、他のデータベースにドライブ領域が緊急に必要とされているため、前進する必要がある段階にあります。
ところで、DBCC CHECKDB
はそのデータベースの問題を検出しないため、この動作は循環ページリンケージによって引き起こされることはありません。
私の同僚は、長期的な縮小という同様の問題を抱えていました。彼はそれを調査するのに少し時間をかけ、ファイルの「終わり」にたくさんのインデックスがあることに気付きました。
インデックスのメンテナンスを少し行った後、縮小操作は正常に実行されました。あなたはそれについて彼のブログをここで読むことができます: http://sqltrees.wordpress.com/2013/08/11/shrinking-databases/