Oracle9iとANALYZE

Oracle9iにおいてANALYZEが実行されているDBではSQLの実行がルールベースではなくコストベースになります。

昨日まで問題なく動いていたSQLが急に遅くなったりした場合はANALYZEが実行されてオプティマイザがコストベースで判断している可能性を疑ってみてください。

ANALYZEが実行されているかどうかは以下の方法で調べられます。

スキーマにログイン

CONN SCOTT/TIGER@ORCL

user_tablesビューにアクセス

SELECT * FROM user_tables 

last_analyzeのカラムに日付が入っている場合、ANALYZEが実行されています。


※10g以降の場合はデフォルトでコストベースです