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

Home -> Community -> Usenet -> c.d.o.server -> Re: How to use an index for for grouping by subranges

Re: How to use an index for for grouping by subranges

From: Anne Crowther <anne.crowther_at_capgemini.co.uk>
Date: Wed, 6 Oct 1999 15:19:11 +0100
Message-ID: <7tflp3$6ei$1@taliesin.netcom.net.uk>


Do you know whether you are using the COST or RULE based optimizer? If you are using RULE it will automatically ignore the index whenever you put a function round an indexed column....

Check in init.ora optimizer_mode

May be set to CHOOSE - if that's the case, have you got statistics on your table?

--
Anne Crowther

Using the hints may help - at th
Jonathan Lewis <jonathan_at_jlcomp.demon.co.uk> wrote in message news:939195326.25874.0.nnrp-02.9e984b29_at_news.demon.co.uk...
>
> The usual rules about indices and functions apply,
> for default behaviour.
>
> Have you tried an /*+ index */ hint yet ? They aren't often ignored.
> An alternative (to use the index, but not as an index)
> is to enable the fast index scan function.
>
> The hint is /*+ index_ffs */, but you can enable
> the feature globally with init.ora parameter
> fast_full_scan_enabled = true
>
> --
>
> Jonathan Lewis
> Yet another Oracle-related web site: http://www.jlcomp.demon.co.uk
>
> Greg Stark wrote in message
> <87n1tx2glo.fsf_at_HSE-Montreal-ppp19508.qc.sympatico.ca>...
> >
> >
> >Say I have an index on an integer column `n' and I want to do a report
> >grouping successive clumps of n together. There's no reason the index
> couldn't
> >be used to do this but the Oracle optimizer doesn't seem to know this.
> >
> >For example none of the following use the index:
> >
> >select count(*) from foo group by trunc(n/2);
> >select count(*) from foo group by trunc(n,-1);
> >select count(*) from foo group by

decode(n,1,1,2,1,3,1,4,2,5,2,6,2,7,3...)
> >
> >actually I admit I haven't tried all of these but I did experiment a
while
> >back and couldn't get the optimizer to use the index.
> >
> >I would also really like to be able to group by trunc(datefield) for
> example.
> >
> >This is in 8.0.5, I know in 8.1.5 there's functional indices which would
> help,
> >but it would be a tremendous waste of space since I would have to index
> every
> >precision I might want to group by, even though they're all redundant.
It's
> >worse in 8.0.5, right now I'm using redundant columns which have
redundant
> >indexes on them...
> >
> >--
> >greg
>
>
Received on Wed Oct 06 1999 - 09:19:11 CDT

Original text of this message

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