Oracleのパフォーマンスチューニングに関する情報、例えばWEB、掲示板、書籍などあるが、その多くには、意外なほど、「迷信」が見られる。迷信、すわなち間違いである。
例えば、多く語られるのが、索引の再構築。索引の再構築を勧める側の一般的な言い分には次の様なものがある:
- 削除されたリーフノードは同じ値が挿入されない限り再利用されない
- 索引のレベルが4を超えた場合は再構築が必要
- CLUSTERING_FACTORが非常に大きい(=テーブルの行数に近い)場合は再構築
- シーケンスから採番した値を主キーに挿入する場合、索引の右側が不均衡となる
- 索引のパフォーマンスを維持するため定期的な再構築が必要
これらは全て「迷信」である。
(ソース: Oracle B-Tree Index Internals / AskTom: Rebuilding Indexes)
索引以外にも次のようなものがある:
- DBバッファキャッシュヒットが90%を切る様であればバッファキャッシュが足りない
- 1つのEXTENTから成る表は最高のパフォーマンスとなる
これらも今ではもう迷信である。
(ソース: That was then, this is now)
Oracleチューニングに関する情報を得た時は、それが信頼するに値するかを十二分に注意し判断しなければならない。怪しい場合はなおさらであるが、信用できる場合でも、可能な限り自分の環境でテストを行い、ベンチマーク試験を行う必要があるだろう。
ところで、これらの迷信の一部は、おそらく、循環参照(または循環引用?)というWEB独特の現象により体系化されたものである。循環参照とは次のようなものである。
- AさんがWEB上に(例えば掲示板などに)、根拠無しのアイデア(索引再作成など)をポストする
- それを見たBさんが、Aさんを引用しそれらしいページ(このサイトのような、笑)を作成する(引用先は明記しない)
- それを見たAさんが、自分のアイデアを正当化するためにBさんを引用する
実際の例が、Circular References (JL Comp)にあるので読んでみると面白いかも。
ちなみに、私が信頼するソースは次のようなもの。このサイトも、下記のサイトを参考にしてます。
あなたがこのサイトを信頼するかどうかは、あなたの判断にお任せします。笑。
追記:
またこの宗教チックなところが、私がOracleに惹かれる要素でもあるかも、、、。
さらに追記: 満月の夜、月に向かって「オラー!オラー!」と叫ぶと脳内パフォーマンスが著しく低下します。