追加コスト 0 で行う SQL Server のパフォーマンス改善・ボトルネック解消 その10 | 野良エンジニアの足跡

追加コスト 0 で行う SQL Server のパフォーマンス改善・ボトルネック解消 その10

こんにちは、nagino です。


気が付くと二桁突入の本シリーズ、だんだんピーキーな設定項目の話になってきましたが、今回は多少汎用的な、復旧モデルです。


復旧モデルは以下の 3 種類があります。

● 完全

● 一括ログ

● 単純

ここではそれぞれの詳細には言及しませんが、通常本番環境では「完全」になっているかと思います。

# 障害発生時に、最終バックアップではなく、障害発生直前までデータを復元できるようにするため。


実は、「一括ログ」は一括ログ操作のパフォーマンスが優れています。

また、トランザクションログのバックアップが可能です。

これは、一括ログ操作時にその操作の詳細の記録を行わず、サマリだけを記録するためです。


一括ログ操作というのは、主に以下があります。

● bcp

● BULK INSERT

● SELECT INTO

● インデックスの再構築

詳細は以下にあります。

http://msdn.microsoft.com/ja-jp/library/ms191244.aspx


ここで、夜間バッチで一括ログ操作を大量に行っている場合、夜間バッチ処理中のみ復旧モデルを「一括ログ」に設定し、その前後で適宜バックアップ(トランザクションログバックアップでも可)を行うことで、夜間バッチのパフォーマンスを向上できる可能性があります。

また、システム立ち上げ時のデータ移行などの作業でも、その作業時間の短縮が期待できます。


もちろん、通常業務時間帯は「完全」に設定しなおしておく方がお勧めですが、上記作業での時間短縮が必要な場合は、その作業中のみ復旧モデルを切り替えるという手法の検討の余地があります。