1回データベースシュリンクキャッチ22ソリューション?
-
29-09-2020 - |
質問
SQL Server 2012 EEのプランを開発して、正しく下落してタイプ(NCHAR To Types)の一部をUnicode Nvarchar(Max)フィールドに変更し、データベースサイズを1回実行することでダウンタイムの一部として最適化したいと考えています。シュリンク。実験は11gのデータである50%の割り当てられたスペースの節約を示しました。
読み取りと実験後、データベースの縮小により索引の断片化と再構築索引が展開されることが明らかです。本当のキャッチ22の状況この場合、ディスクストレージ11gのデータベースに50%の空き容量を残したくありません。
は、断念以外のインデックスと最新のインデックス統計で終わることを可能にする1回の縮小のためのまともなアプローチでありますか?
oバックアップW / VerificationとBackureの重複。
Oすべてのインデックスを削除します。
oコピーを介してFATテーブルを新しいテーブルに再構築してから、テーブルをドロップして名前を変更します。これは現在うまく機能しています。
oデータベースを縮小する妥当な量の空き容量を残します。
O落下したすべてのインデックスを再作成します。
oデータベースを検証し、断片化を確認します。
大理解を検討する警告、提案、ゴット、または代替案を指摘してください。
THX、DAVE
解決
簡単な回復モデルは「ログをオフにする」 - このようにして、これらの活動を非常に小さなチャンクに分割しようとしていない限り、最大の再構築に対処するのに十分な大きさのログを事前サイズである。そして回復モデルでめちゃくちゃを悩ませないでください。
また、そして一般的に、あなたのデータが再び成長しないであろうと、が再び成長しない限り、一時的にスペースを解放することはほとんど利益を得ていません(私はあなたが「合理的な」とは何を意味するのかわからない)。データベースが再び成長する場合は、ドライブに空き容量を残す必要があります。なぜそれを再び成長させるだけでそれを縮小しますか?データベースが成長するまでそのスペースに短期間のレンタルを提供するつもりですか?空き容量%警告を避けようとしているだけですか?
提案:これらの投稿を善意を与えてください...