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: ORA-01450 on creation of new index.

Re: ORA-01450 on creation of new index.

From: Chris Hamilton <ToneCzar_at_erols.com>
Date: Wed, 28 Apr 1999 12:51:53 GMT
Message-ID: <3729035f.3618763@news.erols.com>


On Wed, 28 Apr 1999 02:29:03 GMT, odessa7_at_my-dejanews.com wrote:

>I am trying to create a nonunique index on a varchar2(1000) (nulls ok) column
> Here is the script:
>
>CREATE BITMAP INDEX FILTER.ITEM_DESCS_ITEMNAME_DX
>ON FILTER.ITEM_DESCRIPTIONS(block_description)
>PARALLEL
>INITRANS 2
>MAXTRANS 255
>PCTFREE 5 --changed from 10
>STORAGE (INITIAL 51200
> NEXT 77824
> PCTINCREASE 1
> MINEXTENTS 1
> MAXEXTENTS 2147483645
> FREELISTS 1)
>TABLESPACE INDX
>
>Get this error Message 1: ORA-01450: maximum key length (758) exceeded
>
>I am planning on using 'like' in my where clause on this column. Do I need an
>index at all, and if yes how can I create it?

This doesn't seem like an appropriate column for a bitmap index. Bitmap indexes are for low-cardinality columns with relatively few values, such as the following:

Sex: M or F
Status: VALID, INVALID, PENDING, etc.

those types of things

Could you put a keyword from your 1000-byte column into another (shorter) column and index that?

Using LIKE will only use an index if the leading portion of the indexed column is referenced. For example:

" select * from table_A where index_col like 'ABC%' " will use an index on index_col.

" select * from table_A where index_col like '%ABC%' " will NOT use an index.

Therefore, an index may not be appropriate at all, depending on the nature of your queries. If you have a lot of text-searching to do, try Oracle ConText.

Chris



Christopher Hamilton
Oracle DBA -- Wall Street Sports
chris_at_wallstreetsports.com
http://www.wallstreetsports.com/ Received on Wed Apr 28 1999 - 07:51:53 CDT

Original text of this message

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