Oracle® Identity Manager Best Practices Guide Release 9.1.0 Part Number E10361-02 |
|
|
View PDF |
This chapter describes how to improve connector performance by identifying indexes that are required for connector tables.
When a connector is imported in Oracle Identity Manager, it creates certain database tables (UD_*) and updates metadata in the Oracle Identity Manager schema. The connector may be further customized to suit processes required in a particular installation with reconciliation rules, data flow, and lookup definitions. After a connector is imported and customized, indexes must be created. The following procedure describes how to identify tables and index key fields. Additional requirements can be gathered by running a reconciliation and examining database AWR reports.
To identify connector tables and index requirements:
Note:
In the following procedure, the Sun Java System Directory connector has been used as an example.All the key fields used for field mappings must be indexed from the UD_* table or the process definition table.
Figure 3-1 shows the process definition table for the Sun Java System Directory connector in the Design Console. For this connector, double-click the iPlanet User provisioning process, and then click the Reconciliation Field Mappings tab to view the field mappings
Figure 3-1 Key Fields of a Process Definition Table
Figure 3-2 shows the reconciliation field mappings for the Sun Java System Directory connector. In this figure, the table name and the key field are highlighted in red. For this connector, the UD_IPNT_USR_USERID column must be indexed.
Note:
This is a mandatory step during connector deployment.Note:
if multiple (composite) keys are used for looking up a user, then composite indexes should be created.The following are the guidelines for indexing key fields:
The key fields from the child tables must also be indexed. In Figure 3-2, the key fields for child tables are highlighted in blue. For the Sun Java System Directory connector, the UD_IPNT_ROL_ROLE_NAME and UD_IPNT_GRP_GROUP_NAME columns should be indexed.
If the connector contains any user-defined field and the attribute value is used for searching users in the Oracle Identity Manager database, then the corresponding database field should be indexed.
If any key field is defined in Oracle Identity Manager as case insensitive, then a function-based index on that key field should be created. For example, if the connector code internally performs a search for the first name (assuming that FIRST_NAME is a key), then the indexing should be performed as follows:
CREATE INDEX FDX_USR_FIRST_NAME ON USR(UPPER(FIRST_NAME)
While creating indexes, consider using the COMPUTE STATISTICS clause, so that statistics are generated for the index.
After configuring a connector and creating indexes with above process, you should generate a database table and index statistics (or schema statistics).