自動拡張および自動圧縮に関するTips

概要と言うかはじめにと言うかそんな感じのこと

SQLServer(SQLServer2005)で急にパフォーマンスが悪くなることがあったわぁ…なんて時には、データベースファイルまたはログファイルの自動拡張・圧縮が関係していることがあります。

要チェック。

とりあえずここ読んどけ

このページ(参照:MSDN)でだいたい概要はつかめるので、読んどけ。

といってもアレだから、一言で言うと、

  • 自動拡張・圧縮が発生しないように設定しとけ。

ということ。理由は

  • 自動拡張が発生すると、拡張処理が終わるまでトランザクションが終わらない。
  • しかも、ログファイルの場合は他のトランザクションもそれを待つので、さぁ大変なことに。
  • 自動拡張・圧縮をするとHDDの断片化が大変なことになる。巨大なディスクのデフラグなんて、定期的にできないよねぇ。

分かりやすい一文としては、

管理された運用システムの場合は、予期しない拡張が発生した場合に備えた非常時対策としてのみ、自動拡張を考える必要があります。自動拡張を日常的に使用して、データおよびログの拡張を管理しないようにしてください。
(参照:MSDN、「適切な運用方法」の項)

つまり、自動拡張機能はサービス継続を行うための緊急回避的機能であって、常用する機能じゃないってこと。

各ファイルの監視方法

パフォーマンスモニタで監視できます。

  • データファイル
    Server:Databases オブジェクトの Data File(s) Size (KB) カウンタ
  • ログファイル
    Server:Databases オブジェクトの Log File(s) Size (KB) カウンタ
    Server:Databases オブジェクトの Log File(s) Used Size (KB) カウンタ

なんでデータファイルのほうにはUsed Sizeカウンタがないのだろう…

コメントを残す