コストベース・オプティマイザについて。
オプティマイザには、
1)ルールベース・オプティマイザ(RBO)
2)コストベース・オプティマイザ(CBO)
があります。
RBO は、決められたアクセスパスの優先順位に従って
実行計画を選択することが分かりました。
CBO は、最適なアクセスパスを選択する為に、
オプティマイザ統計を取得し、実行計画のコストを
見積もることが分かりました。
★このオプティマイザ統計に関して、質問があります。
オプティマイザ統計は、ANALYZE や DBMS_STATS パッケージを
使用することで取得する統計情報ということが分かりました。
しかし、統計情報を取得することでどのように実行計画が
改善されるのか、この部分のイメージが掴めません。
================================================================
例えば、表の統計情報を取得すると、以下のようになりました。
SQL> select NUM_ROWS,BLOCKS,EMPTY_BLOCKS,AVG_SPACE,CHAIN_CNT
2 ,AVG_ROW_LEN
3 from user_tables where table_name='EMP';
NUM_ROWS BLOCKS EMPTY_BLOCKS AVG_SPACE CHAIN_CNT AVG_ROW_LEN
---------- ------ ------------ --------- ---------- -----------
15 5 0 0 0 35
================================================================
それぞれのカラムの意味は以下であることが分かりました。
《上記のカラムの説明》
NUM_ROWS = 行数
BLOCKS = 使用ブロック数
EMPTY_BLOCKS = 未使用ブロック数
AVG_SPACE = 空き領域の平均サイズ(bytes)
CHAIN_CNT = 行連鎖・行移行の行数
AVG_ROW_LEN = 行の平均長(bytes)
上記の統計情報を取得することで、どのように実行計画を定めているのでしょうか。
統計情報を取得することで、どのような意味があるのでしょうか。
宜しければ、教えて頂きたいと思います。
お礼
企業向けサービスっぽいですね・・・ 学生なので年間契約出来そうもないです。 個人投資家たちはどうやって企業情報を手に入れているんですかね。