オラクル九州支社様でIT技術者向けのコミュニティを開設されていて
定期的に、オラクル製品に関する技術セミナーを無料で
開催されています。
パフォーマンスチューニングやトラブルシュートなど、
奥が深すぎて独学で理解するのは難しいので、
事例を元になどいろいろな技術の情報を直接聞けるので
とても勉強になります。
できれば、毎回(毎月1回)参加したいところですが
開催場所が少し遠方のため、年に1~2回程度しか参加できて
いません。。
先日は、テーマが「性能トラブル対策ガイド!
オプティマイザ/統計情報収集について」ということで
私にはレベルが高い内容でしたが受講してきました。
Oracle内部で、効率がよい実行計画をたてるために
自動的に統計情報が収集されているので
(ある程度、新しいバージョンのOracleでは)
特に気にする必要はないのですが
どのような情報を収集してどのように実行計画に
活用されているのかを理解することで
適切なタイミングで統計情報が収集されているかを考え、
システムによってはメンテナンスが必要な場合もあるようです。
例えば、11gR2ではデフォルトで、統計情報収集の時間帯が
月~金曜は22時~26時,土~日曜は6時~26時で
設定されていますが、
夜間バッチ処理などで26時以降にデータ量が変動する場合は
統計情報収集の時間帯を夜間バッチ処理以降に変更するなど
検討する必要があったり、
ワークテーブル的なテーブルは統計情報を取集しても意味がない
ということであれば、そのテーブルだけ統計情報収集をとめたりなど
検討する必要もあるようです。
統計情報収集もDBに負担をかけますので。
弊社の開発機用DBサーバも夜10時になると、応答が遅くなるな~
と思いつつ、原因を調査するまでに至ってなかったのですが
おそらく統計情報収集が原因なんだろうなというのが
わかってよかったです。