SQL Serverのメンテナンスプランでデータベースのパフォーマンス維持

 TPiCSの運用を長期に行いるとだんだん遅くなることがあります。データベースの大きな役割である障害時の復旧には日々バックアップでよいですが、パフォーマンスの維持には、インデックスの再構築や統計情報の更新を定期的に行うのがよいです。これらを手動で行うのは手間なので、SQL Server Standard以上は、タイマーで自動処理を行ってくれるSQL Server エージェントという機能がついていて、この自動処理をまとめて設定するのが「メンテナンスプラン」です。
 データベースは、大量のデータに対して素早く該当データを見つけられるようにインデックスがあり、日々の更新によってインデックスも更新されています。更新されたインデックスの並び順をキレイに整列して、効率よく探せるようにするのが「インデックス再構築」です。ただし、TPiCSなどユーザーがデータベースを使用している時にはできないので、夜間など、バックアップと同様に使用ユーザーがいない時に実行します。また、データベースには多くのインデックスがあり、データの分布などにより、リクエストされる毎に最適な検索方法をSQL Serverが決めてデータを返してくれます。この分布情報が「統計情報」といい、この統計情報も最新データの分布に更新されていると、よりパフォーマンス維持につながります。
 インデックスの断片化や古い統計情報により、パフォーマンスが低下している場合には、メンテナンスプランの実行で改善される可能性があります。

以下の手順でメンテナンスプランを設定します。

DBメンテナンスプランの作成手順

●[Microsoft SQL Server Management Studio]からデータベースサーバーに接続後、[管理]-[メンテナンスプラン]から右クリックの「メンテナンスプランウィザードの実行」を実行します。

●[次へ]をクリック

●「プランのプロパティを選択」の「名前」からメンテナンスプランの名前を設定します。

 

※画像では「TPICSDBメンテナンス」と設定しています。

 

 

 

 

 

「変更」から実行間隔やスケジュールを設定します。

●頻度から実行頻度、実行期間で開始日と終了日を設定できます。

※画像では2021/02/01スタートで3ヶ月間隔で実行

●スケジュールが変わっていることを確認後、[次へ]

●実行するタスクを指定します。画像では以下の2つを選択しています。

※その他、「データベースのバックアップ(完全)」等でDBのバックアップなども指定できるため必要に応じて指定してください

 

・インデックスの再構築

・統計の更新

 

 

●実行するタスクを確認後、[次へ]

※この画面ではどの順番でタスクを行うかを調整できます。

●[データベース]のドロップダウンリストから先ほど指定したメンテナンスプランをどのデータベースに対して実行するかを指定します。

※この操作はタスクごとに指定するため、複数回同様の操作を行なってください

●メンテナンスプランの実行結果の保存やEmailで配布させる場合に設定します。

●内容確認後、[完了]でメンテナンスプランが作成されます。

●作成完了後[閉じる]でメンテナンスプランウィザードを閉じます。

●作成したメンテナンスプランを手動で実行させる場合は、

[管理]-[メンテナンスプラン]-[作成したメンテナンスプラン名]を選択し、右クリックの[実行]をクリックしてください。

●メンテナンスプランの実行時に「SQL Serverエージェントが起動していない」とエラーが出る場合は「SQL Serverエージェント」を選択し右クリックの「開始」を実行してください