Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Mailing Lists -> Oracle-L -> RE: Index-Organized Table experiences

RE: Index-Organized Table experiences

From: <>
Date: Wed, 28 Apr 2004 10:03:13 -0500
Message-Id: <>

Your gut instinct is spot on. IOT's are an excellent enhancement - one we have made considerable use of - both in OLTP and DW environments. The scenario you pose is the ideal situation in which to use an IOT - it negates the overhead of scanning both table and index to get the required rows - with consequent performance improvements.

In addition to usage as per your scenario, we also use them extensively throughout our metadata repositories, especially for simple "lookup" data.

The one thing to watch out for is "overflow" - which maybe a real DBA can explain better in response than I can (I'm an architect that knows enough DBA stuff to be dangerous and that's as far as it goes!).

We're using 9i2 primarily, which allows us to place additional indices on IOTs - mostly for referential integrity. However, we don't tend to add additional indices unless we really need to - I figure it's a performance hit ???

Note also that they do require the use of a primary key... I think this is still true - it's been a while ....

Richard J Stevenson
CobbleSoft International Ltd.
"Helpdesk and Service Management Tools for a Real Database"
US/Can Toll-Free: 1-866-380-6716
International: +1 315 548 5810

On Wed, 28 Apr 2004 08:14:50 -0600, Daniel Fink <Daniel.Fink_at_Sun.COM> wrote:

> We are looking to implement IOTs for a couple of intersection
> entities in a 10g db. I would like to hear from those brave
> enough to actually use IOTs what is the good, the bad and the
> ugly.
> example:
> Employee (heap table)
> Project (heap table)
> There is a many-to-many relationship between the tables (1
> employee can be on many projects and 1 project can have many
> employees).
> The emp_project table is the intersection entity containing
> emp_id and project_id as the only columns. There are FK
> constraints on each of the columns. The combination of emp_id
> and project_id is unique.
> This situation *sounds* like the right one for an IOT,
> otherwise we would have 1 table and 2 indexes (1 on each
> column).
> My main concerns are:
> 1) Integrity/performance
> 2) Locking behavior (do I need to adhere to the traditional
> "index all foreign keys" rule to prevent excessive locking?)
> 3) Any especially nasty gotchas
> Thanks,
> Daniel
> ----------------------------------------------------------------
> Please see the official ORACLE-L FAQ:
> ----------------------------------------------------------------
> To unsubscribe send email to:
> put 'unsubscribe' in the subject line.
> --
> Archives are at
> FAQ is at
> -----------------------------------------------------------------

Please see the official ORACLE-L FAQ:

To unsubscribe send email to: put 'unsubscribe' in the subject line.
Archives are at
FAQ is at
Received on Wed Apr 28 2004 - 10:00:31 CDT

Original text of this message