Re: Why does this query need a table access by rowid?

  • From: Tanel Põder <tanel.poder.003@xxxxxxx>
  • To: <oracle-l@xxxxxxxxxxxxx>
  • Date: Fri, 23 Jul 2004 21:17:29 +0300

> So, the index is recognized, and that's great.  My question is, why is
> the TABLE ACCESS BY ROWID required?
> Since only the DOC_ID is in the select list, why the table access?

Since in the index you don't have the DOC_ID column, you have only the
function of DOC_ID in your index and Oracle isn't smart enough to look
inside the function to see whether the funcion leaves the value unaltered...

Try to do a composite index on f(doc_id), doc_id.

Tanel.




----------------------------------------------------------------
Please see the official ORACLE-L FAQ: http://www.orafaq.com
----------------------------------------------------------------
To unsubscribe send email to:  oracle-l-request@xxxxxxxxxxxxx
put 'unsubscribe' in the subject line.
--
Archives are at //www.freelists.org/archives/oracle-l/
FAQ is at //www.freelists.org/help/fom-serve/cache/1.html
-----------------------------------------------------------------

Other related posts: