SAP / Microsoft Alliance においてある技術資料 の
「SAP on Microsoft プラットフォームでの高可用性の実現 ノウハウ編」 より引用
http://www.ms-sap.com/document/technical/database/SAPonMicrosoftプラットフォームでの高可用性の実現_ノウハウ編.ppt
DBメンテナンス・監視の一例
1回/日~週(フルバックアップの前に)
DBCC CHECKDB
DBCC CHECKCATALOG
1回/週~月
(データの増加率、APの特性による)
UPDATE STATISTICS
1回/3ヶ月~6ヶ月
(データの増加率、APの特性による)
DBCC DBREINDEX or DBCC INDEXDEFLAG
(注意) 上記資料はちょっと古いので、今は見解が変わっているかも。
私の意見:
DBCC CHECKDB は SQL Server 6.5 のときには、「週に1回は必ず実行しよう」
という慣習でしたが、SQL Server 7.0 が出たときの(マーケティング メッセージ?)は
「DBCC CHECKDB は必須ではない」 と言われていたと記憶しています。
しかし、念のためフルバックアップ前に DBCC CHECKDB を実行する、または
週に1回 定期的に実行しよう、という意見に私は賛成です。
ちなみに、全部のデータベースをまとめて CHECKDB するには、
アンドキュメンテッド ストアドの sp_MSforeachdb を使うと便利です。
sp_MSforeachdb @command1="DBCC CHECKDB('?')"
あと、統計の更新(UPDATE STATISTICS)や DBCC DBREINDEX は
「データの増加率、APの特性による」 という注意書きの通り、状況に
応じた対応が必要になりますね。どちらもデータ量が多いと非常に時間
のかかる処理なので、負荷の少ない時間帯を狙ってスケジューリング
する必要があります。