1
SELECT /*+ PARALLEL(cfe, 6) */
      dpd.f_p_descr,
      ef.t_a_code,
      pd.p_name,
      ef.t_q
 FROM e_fact ef
INNER JOIN d_dim dd
   ON ef.t_d_key = dd.d_key
INNER JOIN f_e cfe
   ON ef.ref_id = cfe.t_id
  AND ef.r_version = cfe.t_version
INNER JOIN d_dim dpd
   ON dpd.d_key = ef.d_key
INNER JOIN p_dim pd
   ON pd.p_key = ef.b_p_key
INNER JOIN r_dim rd
   ON rd.r_key = ef.t_r_key
INNER JOIN f_t_dim ftd
   ON ftd.t_key = cfe.t_key
WHERE dd.d_value = '19-OCT-2012'
  AND dpd.f_d = 'XYZ'
  AND ftd.s_id IN (201, 209)
  AND rd.r_n = 'ABC'

f_e私は本番環境からこのクエリを取得しました。問題は、ヒントが追加された場合でも、オプティマイザーがインデックスの使用を拒否することです ( /*+ index(e.c_fact_idx12) */.私のアプローチは何ですか?これを確認する必要があるすべてのことは何ですか?このクエリを調整する他の方法はありますか?クエリのチューニングは初めてなので、助けていただければ幸いです。

4

1 に答える 1

2

を使用していますが、クエリのどこにもe.c_fact_idx12テーブル エイリアスeが定義されていません。

于 2012-11-27T06:40:26.060 に答える