From: Sybrand Bakker <postbus@sybrandb.demon.nl>
Newsgroups: comp.databases.oracle.server
Subject: Re: Function-based indexes
Date: Wed, 04 Apr 2001 16:26:27 +0200
Message-ID: <8lbmcts3gn6ojhvfgugqcs41gik63eillk@4ax.com>
Reply-To: postbus@sybrandb.demon-verwijderdit.nl
References: <p68mctk798k7jeqeavihe8thvr06n1n7kj@4ax.com>
X-Newsreader: Forte Agent 1.8/32.548
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Complaints-To: abuse@nl.demon.net
NNTP-Posting-Host: sybrandb.demon.nl
X-NNTP-Posting-Host: sybrandb.demon.nl:212.238.21.78
X-Trace: beta-news.demon.nl 986394262 beta-news:86051 NO-IDENT sybrandb.demon.nl:212.238.21.78
Lines: 42


On Wed, 04 Apr 2001 09:31:47 -0400, Vikas Agnihotri
<onlyforposting@yahoo.com> wrote:

>I can see that FBI (!) would be useful in the classic case of case
>insensitive string matching 
>
>where upper(column)=upper('input string')
>
>To serve the above query, one would 
>create index on table (upper(column))
>
>But if I know the case in which a particular data element is stored
>and were to use a
> where column='This Way'
>
>would it still use the FBI?
>
>Of course, I am assuming that you cannot have a FBI and any other
>index (btree or bitmap) on the same column?
>
>In general, how exactly does the FBI work internally? The docs mention
>that it stores the data using a 'expression tree' and not a 'btree'.
>What does this mean exactly?  Does Oracle evaluate the function and
>actually store the upper-cased values in the index?
>
>If it is not a btree, arent there any leaf nodes? How is the index
>organized then?
>
>Thanks...


Buy the book of Jonathan Lewis, Practical Oracle 8i and you will know.
According to this book Oracle adds an extra secret column to your
table when you use function based indexes
(I already can imagine the application were someone is nearing 1000
columns and wants to add a function based index on about every column,
lol)

Hth,


Sybrand Bakker, Oracle DBA

