Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> RE: Function-Based Index not working

RE: Function-Based Index not working

From: Naveen Nahata <naveen_nahata_at_mindtree.com>
Date: Sat, 31 Aug 2002 01:33:29 -0800
Message-ID: <F001.004C4E9F.20020831013329@fatcity.com>


Marul,  

  1. you don't have table analyzed in which case Rule based optimizer will be used. CBO is used if atleast one of the tables in the query is ANALYZED
  2. There is no data in your table. Optimizer goes for a full tablescan if it thinks that it will be moer advisable to do a full table scan. e.g. You will not use the INDEX if your book has only one page.

The decision of going for a full tablescan is based on DB_BLOCK_SIZE * DB_FILE_MULTI_BLOCK_READCOUNT, which tells how much data Oracle fetches at one time. If your entire table can be fetched in atleast 2 fetches, full table scan will be done instead of INDEX scan, to avoid doubling of work.    

Naveen

-----Original Message-----
Sent: Saturday, August 31, 2002 2:18 PM
To: Multiple recipients of list ORACLE-L

Hi,  

Can you please help me out in solving this weird problem of funcation-based index not being used when I query the table. This is the comand I fired and the result it returned me.  

  1. SQL> create table employees (last_name varchar2(20)); Table created.
  2. SQL> CREATE INDEX upper_ix ON employees (UPPER(last_name)); Index created.

Made the autotrace on and than:-  

3. SELECT last_name FROM employees WHERE UPPER(last_name) IS NOT NULL ORDER BY UPPER(last_name);

    no rows selected.  

Execution Plan


   0 SELECT STATEMENT Optimizer=CHOOSE    1 0 SORT (ORDER BY)
   2 1 TABLE ACCESS (FULL) OF 'EMPLOYEES'     I fired without order by clause also but no use.  

Now can any body please let tell me why this Oracle is having a full scan of the employee table.  

TIA,
Marul.         

--

Please see the official ORACLE-L FAQ: http://www.orafaq.com
--

Author: Naveen Nahata
  INET: naveen_nahata_at_mindtree.com

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing). Received on Sat Aug 31 2002 - 04:33:29 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US