私はいくつかのデータベースに8 TBのSQL Server 2008を導入しました。 私はそれぞれのデータの約85%を削除し、ディスク容量を回復しなければなりません。 すべてのUSED_SPACEの最終SUMは1.2 TBです。SQL Serverのパフォーマンスを向上させるDBCC SHRINKFILE
このSHRINKFILE
プロセスは、PERデータベースの7時間のメンテナンスウィンドウ内に収まる必要があります。
ただし、それぞれのDBCC SHRINKFILE
は実行に数時間かかります。たとえば、800 GBのデータベースを120 GBに縮小すると、15時間以上かかります。
残念ながら、これは私のメンテナンスウィンドウを超えており、データベースが破損しないことを望んでいるプロセスを強制終了させてしまいます(その後DBCC CHECKDB
は正常です)。
DBCC SHRINKFILE
は、利用可能なディスクI/OやCPUリソースを十分に活用していないことがわかります。
たとえば、完全なサイズのデータベースファイルを数時間で1つのディスクから別のディスクにコピーすることは可能ですが、SHRINKFILE
プロセスはかなりの時間がかかります。
注:データベースはすべてSIMPLE
回復モードに設定され、AUTO_SHRINK
はオフです。
はい、多くの人がインデックスを破壊するとは言いません。SHRINKFILE
が完了すると、インデックスを再構築する予定です。
SHRINKFILE
コマンドまたはその他のソリューションの優先度を上げる方法はありますか?私が検討しているいくつかのオプションは次のとおりです。SHRINKFILEを実行する前の同じセッションで、
- SET DEADLOCK_PRIORITY HIGHがあります。 (しかし、これは役に立ちますね)
- 新しいデータベースを作成し、すべてのデータをテーブルごとにコピーします。
助けてください。
これは本当に**プログラミング**(このサイト*は** **すべてについて**です)とは関係ありませんが、DB管理を伴うので、ここで話題にはならず、[dbaに属します。 stackexchange.com](http://dba.stackexchange.com) - 議決権を行使すること。 –
あなたはそうです。それを動かす方法はありますか?それとも新しいものを作るべきでしょうか? – Don
システムによってマイグレーションされます。マイグレーションには合計で5票の投票があります。 –