title: Oracle Indexes on Left Outer Joins
body: <p>So I'm having some issues with proper / any use of indexes in Oracle 11Gr2 and I'm trying to get a better understanding of how my explain plan ties back to my query so that I can apply indexing properly.   When running the following query:</p>
  
  <pre><code> 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 &lt;&gt; SUM (NVL (VJLOG.TDTL_AMT, 0));
  </code></pre>
  
  <p>I'm getting the following explain details: <img src="https://i.stack.imgur.com/0Gq1l.jpg" alt="enter image description here"></p>
  
  <p>I can understand that the indexes on my join "keys" (JLOG_KEY or CASE_KEY) wouldn't necessarily apply seeing as it's an outer join (or should they?), however when creating indexes on JLOG1 (JRNL_CD, SRC_CD, ACCT_IF_CD), technically would these take effect given my "where" clause?  </p>
  
  <p>Should I create any indexes at all given the circumstances or is there a better way of doing this?  </p>