Monday, October 19, 2009

オラクル性能に対する短い考え #4

待機イベント(Wait Event)は原因じゃなくて結果である。


私が勤めているエクセムで一番積極的に紹介して、また一番よく活用するのが待機イベントです。性能低下の原因を手軽に見つけることができるというのが待機イベントの意味です。


でも注意しなければならない点があります。待機イベントは性能低下の原因じゃなくて逆に性能低下の結果ということです。すなわち、待機イベントを待つために性能が低くなるじゃなくて、性能に問題があるために待機イベントを待機するんです。


db file sequential readイベントを長い時間待機するためにI/O性能が遅くなるのじゃないでしょ。I/O呼び出しが過ぎるとかI/O性能が遅いためにdb file sequential readイベントの待機時間が長くなるのです。log file syncイベントを長い時間待機するためにCommitの性能が遅くなるのじゃないでしょ。Commit呼び出しが過ぎるとかLGWRがちゃんと働けないからlog file syncイベントを待機するようになるのです。


すなわち、待機イベントとは性能低下が発生したという結果をもっとよく視覚化してくれるだけ、性能低下の原因がどこかを直接言ってくれるのではないんです。おかげで私のようなエンジニアが今までもお金をもうけられるんじゃないですか。


なお待機イベントの概念が発達していない他のすべてのDBMS(MySQL, UDB, SQLServerなど)でも性能低下の原因を見つけるのが可能な理由となるのです。

No comments:

Post a Comment