1

すべてのユーザーデータベースを縮小し、それらのインデックスを再構築するための毎週のメンテナンス計画があります。これは、読み取り専用データベースを作成するまでは正常に機能していましたが、プランを実行するたびに、読み取り専用状態のためにこのデータベースの処理を開始すると失敗します。

私が見る限り、データベースから読み取り専用フラグを削除する2つのオプションがありますが、これは可能ですが、データベースは四半期に1回しか更新されないため、パフォーマンスの観点から読み取り専用機能を使用することは理にかなっています。 。または、プランを実行するデータベースを手動で選択します。つまり、読み取り専用データベースを除くすべてのユーザーデータベースを選択します。これにより、新しいデータベースをプランに追加することを忘れないでください。

誰かがこれを行うためのより良い方法の提案がありますか?

ありがとう

ニール

4

3 に答える 3

1

maintプランをカスタマイズしたくない場合は、読み取り専用フラグを削除します。

なぜDBも縮小しているのですか?データベースが特定のサイズに拡大した場合、これはおそらく現在の自然なサイズです。

また、インデックスの再構築(経験則)には、ターゲットテーブルサイズの120%の空き領域が必要であることを忘れないでください。たとえば、500MBのテーブルには600MBの空き容量が必要です。

縮小してから再構築するのは無意味です...そして、恐ろしいファイルの断片化も発生します

于 2009-08-18T18:01:41.893 に答える
1

メンテナンス プランを変更して、読み取り専用フラグ ( ALTER DATABASE database-name SET READ_WRITE) を削除し、それをリセットする最終ステップを追加する「T-SQL ステートメントの実行」ステップから開始できると思います: ALTER DATABASE database-name SET READ_ONLY

于 2009-08-18T19:22:41.340 に答える
1

why are you shrinking the database in the first place? also there's no need to maintain read opnly db's like that.

于 2009-08-18T16:07:43.013 に答える