Performance Tuning Guide > Tuning Siebel EIM for Performance > Troubleshooting EIM Performance >
USE INDEX HINTS and USE ESSENTIAL INDEX HINTS: EIM Criteria for Passing Indexes to the Database
This topic explains how EIM determines which indexes to include on the hint clause passed to the database when using the USE INDEX HINTS and USE ESSENTIAL INDEX HINTS parameters. When determining which indexes to pass on to the database as index hints, EIM takes the following steps:
- Before generating a query, EIM makes a list of columns for which it has determined that an index is needed.
- EIM then checks all of the indexes in the repository to find the index with the most matching columns.
EIM uses the following selection criteria in choosing indexes:
- Unique indexes have priority over non-unique indexes.
- Required columns have priority over non-required columns.
If a new index is created and it is declared in the repository, then there is a chance that EIM will choose it and pass it to the database on a hint.
NOTE: On Oracle databases, EIM uses the Oracle rule-based optimizer (RBO) mode. When you specify an INDEX hint, the RBO mode knows that it must use the index specified in the hint. In this case, the RBO mode does not perform a full table scan, nor does it use any other index. For more information about optimizer modes for Oracle databases, see the Upgrade Guide.