Question: What is
the domain index?
Answer: The domain index is another
feature, first introduced in Oracle 8i as an extensible
index. The domain index is used for indexing
non-traditional data, such as LOB data, video data and other
non-textual columns.
Also see my notes on
Oracle text indexes.
A domain index is actually an extension to the Oracle
index system that allows developers to create their own
index type (this is usually done by companies developing
commercial applications or cartridges). Index types are
created using the CREATE INDEXTYPE command. A DOMAIN index
can only be placed on a single column in Oracle. Multiple
DOMAIN indexes can be created on the same column if their
index types are different. A DOMAIN index is stored in an
index organized table (IOT) or in an external file.
DOMAIN indexes are built against an
index type. An index type encapsulates a set of routines
that manage access to a domain. This encapsulation allows
efficient search and retrieval functions for complex domains
such as text, spatial, image, and OLAP data. All of this
encapsulation is specified using the Oracle Data Cartridge
Interface for indexes (ODCIIndex). These routines can be
implemented by type methods.
A domain index is usually used in
cartridge development. In fact, a domain index is called so
because it is used only within the domain of its parent
cartridge. A domain index extends the basic types of hash,
bitmapped, and B-tree indexes by allowing the developer to
create his or her own index methods and apply them to a
specific type of data set.
An example of the use of domain
indexing would be the use of R-tree indexes for spatial
data. A domain index is based on the concept of an
INDEXTYPE, which, like a User Defined Type (UDT), is created
and maintained by the user. In order to use a domain index,
a data cartridge that implements its structures, methods,
and types must be created.
Note
The domain indexes are indicated by
a non-NULL value in the DOMIDX_STATUS and DOMIDX_OPSTATUS
columns in the DBA_INDEXES view. I assume a join can be
based on either the INDEX_NAME and INDEXTYPE_NAME in the
DBA_INDEXES and DBA_INDEXTYPES table supplemented by the
OWNER columns in each or the INDEX_TYPE and INDEXTYPE_NAME
columns (even though they don't match in size). I say
"assume," because this topic is beyond the scope of this
book, so I leave it to the DBA who is involved in a
cartridge development effort to actually create the reports
required based on the supplied join data.
|
|
|
Oracle Training from Don Burleson
The best on site
"Oracle
training classes" are just a phone call away! You can get personalized Oracle training by Donald Burleson, right at your shop!
|
|
|
|
|
Burleson is the American Team
Note:
This Oracle
documentation was created as a support and Oracle training reference for use by our
DBA performance tuning consulting professionals.
Feel free to ask questions on our
Oracle forum.
Verify
experience!
Anyone
considering using the services of an Oracle support expert should
independently investigate their credentials and experience, and not rely on
advertisements and self-proclaimed expertise. All legitimate Oracle experts
publish
their Oracle
qualifications.
Errata?
Oracle technology is changing and we
strive to update our BC Oracle support information. If you find an error
or have a suggestion for improving our content, we would appreciate your
feedback. Just
e-mail:
and include the URL for the page.
Copyright © 1996 - 2020
All rights reserved by
Burleson
Oracle ®
is the registered trademark of Oracle Corporation.
|
|