通常適切な統計情報(ヒストグラム)が取得されていればほとんど必要ないのですが、SQL実行のタイミングによってはヒストグラムの値と実データの間に大きな乖離が発生する状況により、オプティマイザが不適切なプランを選択してしまう事や、バインドピーク問題の対策の一つとして利用する事があります。
(蛇足かもしれませんが)以下にエイリアスを使った場合と、直接テーブル名を指定した場合を試していますが、どちらも実行計画に違いはないので、PLAN_HASH_VALUEは同じになります。
テーブル名と、利用するインデックス名を指定する
select /*+ index(tbl26 tbl26_idx01) */ COL1,COL5 from tbl26 where COL5='22CCCC' ;
エイリアスを使った場合エイリアス名を指定する
select /*+ index(t tbl26_idx01) */ t.COL1,t.COL5 from tbl26 t where t.COL5='22CCCC' ;
-- 何も指定しない場合フルスキャンが選択される状況
select t.COL1,t.COL5 from tbl26 t where t.COL5='22CCCC'
------------------------ 実行計画 --------------------------
SELECT STATEMENT Cost = 11667
TABLE ACCESS FULL TBL26
--------------------------------------------------------------------------------
-- ヒント句を指定する
-- テーブル名と、利用するインデックス名を指定する
select /*+ index(tbl26 tbl26_idx01) */ COL1,COL5 from tbl26 where COL5='22CCCC'
------------------------ 実行計画 --------------------------
SELECT STATEMENT Cost = 34669
TABLE ACCESS BY INDEX ROWID BATCHED TBL26
INDEX RANGE SCAN TBL26_IDX01
--------------------------------------------------------------------------------
-- エイリアスを使った場合エイリアス名を指定する
select /*+ index(t tbl26_idx01) */ t.COL1,t.COL5 from tbl26 t where t.COL5='22CCCC'
------------------------ 実行計画 --------------------------
SELECT STATEMENT Cost = 34669
TABLE ACCESS BY INDEX ROWID BATCHED TBL26
INDEX RANGE SCAN TBL26_IDX01
--------------------------------------------------------------------------------