そのため、Oracle 11Gr2でのインデックスの適切な使用に問題があり、インデックスを適切に適用できるように、Explainプランがクエリにどのように関連付けられているかをよりよく理解しようとしています。次のクエリを実行する場合:
SELECT JLOG1.JLOG_KEY,
JLOG1.SRC_CD,
JLOG1.JRNL_AMT,
CASD.CONT_NO,
SUM (NVL (VJLOG.TDTL_AMT, 0)) TDTL_SUM
FROM GL_Journal_Logs JLOG1,
GL_JLOG_Details VJLOG,
CASE_DATA CASD
WHERE VJLOG.JLOG_KEY(+) = JLOG1.JLOG_KEY
AND CASD.CASE_KEY(+) = JLOG1.CASE_KEY
AND JLOG1.JRNL_CD = '0'
AND JLOG1.SRC_CD = '2'
AND JLOG1.ACCT_IF_CD = '0'
GROUP BY JLOG1.JLOG_KEY, JLOG1.SRC_CD,JLOG1.JRNL_AMT, CASD.CONT_NO
HAVING JLOG1.JRNL_AMT <> SUM (NVL (VJLOG.TDTL_AMT, 0));
私は次の説明の詳細を取得しています:
結合「キー」(JLOG_KEYまたはCASE_KEY)のインデックスは、外部結合であるため(またはそうする必要がありますか?)、必ずしも適用されるとは限りませんが、JLOG1(JRNL_CD、SRC_CD、ACCT_IF_CD)でインデックスを作成する場合、技術的には私の「where」句があれば、これらは有効になりますか?
状況に応じてインデックスを作成する必要がありますか、それともこれを行うためのより良い方法がありますか?