Using the dsconf analyze-index-filters command, gather the most used filters and their behavior. On the other hand, to know the data as appears in the index files, use dsadm analyze-indexes to have a snapshot of index files.
Your server must be stopped before analyzing the attribute indexes.
$ dsadm stop INSTANCE_PATH |
Analyze attribute indexes using the following command:
$ dsadm analyze-indexes [-bRi] [-o FILE] INSTANCE_PATH SUFFIX_DN |
For example, to analyze the attribute indexes of suffix o=example.com, run the following command:
$ dsadm analyze-indexes /local/myinst o=example.com
This operation may take a long time and generate important amounts of data
Do you want to continue [y/n]? y
Generating raw index data, please wait...
Raw index data available in file '/local/myinst/logs/db_stat_example%2ecom'
Index Type Total Keys ALLIDs 95% 90% 80%
--------------- --------- ---------- ------ --- --- ---
aci PRESENCE 1 0 0 0 0
ancestorid EQUALITY 6 6 0 0 0
cn EQUALITY 200000 0 0 0 0
cn SUBSTRING 14828 15 0 0 0
entrydn EQUALITY 100006 0 0 0 0
givenName EQUALITY 8605 0 0 0 0
givenName SUBSTRING 4762 4 0 0 0
givenName PRESENCE 1 1 0 0 0
mail EQUALITY 100000 0 0 0 0
mail SUBSTRING 14975 26 1 3 2
mail PRESENCE 1 1 0 0 0
nsuniqueid EQUALITY 100007 0 0 0 0
numsubordinates PRESENCE 1 0 0 0 0
objectclass EQUALITY 7 4 0 0 0
parentid EQUALITY 6 5 0 0 0
sn EQUALITY 100000 0 0 0 0
sn SUBSTRING 12993 0 0 0 0
telephoneNumber EQUALITY 99924 0 0 0 0
telephoneNumber SUBSTRING 1106 24 0 0 0
telephoneNumber PRESENCE 1 1 0 0 0
uid EQUALITY 200000 0 0 0 0
uid PRESENCE 1 1 0 0 0
aci PRESENCE
============
ALLIDs keys : 0 / 1
ancestorid EQUALITY
===================
ALLIDs keys : 6 / 6
[1] [2] [3] [4] [5] [6]
cn EQUALITY
===========
ALLIDs keys : 0 / 200000
cn SUBSTRING
============
ALLIDs keys : 15 / 14828
[100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [^us]
[er1] [r10] [ser] [use]
entrydn EQUALITY
================
ALLIDs keys : 0 / 100006
givenName EQUALITY
==================
ALLIDs keys : 0 / 8605
givenName SUBSTRING
===================
ALLIDs keys : 4 / 4762
[^ma] [ie$] [na$] [ne$]
givenName PRESENCE
==================
ALLIDs keys : 1 / 1
[pres]
mail EQUALITY
=============
ALLIDs keys : 0 / 100000
mail SUBSTRING
==============
ALLIDs keys : 26 / 14975
[.co] [0@e] [1@e] [2@e] [3@e] [4@e] [5@e] [6@e] [7@e] [8@e] [9@e]
[@ex] [^ma] [amp] [com] [ell] [exa] [e.c] [ie_] [le.] [mar] [mpl]
[na_] [ne_] [om$] [ple] [xam]
mail PRESENCE
=============
ALLIDs keys : 1 / 1
[pres]
nsuniqueid EQUALITY
===================
ALLIDs keys : 0 / 100007
numsubordinates PRESENCE
========================
ALLIDs keys : 0 / 1
objectclass EQUALITY
====================
ALLIDs keys : 4 / 7
[inetorgperson] [organizationalperson] [person] [top]
parentid EQUALITY
=================
ALLIDs keys : 5 / 6
[2] [3] [4] [5] [6]
sn EQUALITY
===========
ALLIDs keys : 0 / 100000
sn SUBSTRING
============
ALLIDs keys : 0 / 12993
telephoneNumber EQUALITY
========================
ALLIDs keys : 0 / 99924
telephoneNumber SUBSTRING
=========================
ALLIDs keys : 24 / 1106
[120] [121] [130] [140] [141] [151] [171] [180] [181] [206] [213]
[303] [408] [415] [510] [714] [804] [818] [^12] [^13] [^14] [^15]
[^17] [^18]
telephoneNumber PRESENCE
========================
ALLIDs keys : 1 / 1
[pres]
uid EQUALITY
============
ALLIDs keys : 0 / 200000
uid PRESENCE
============
ALLIDs keys : 1 / 1
[pres]
|
Following what explained in Chapter 9, Directory Server Indexing, in Oracle Fusion Middleware Reference for Oracle Directory Server Enterprise Edition, dsadm analyze-indexes displays the status of the value keys as used by Directory Server. If most of the keys are Allid or 95% of Allid, the number of entries matching the key is at least equal to all-ids-threshold. The index most likely has to be configured with a higher value for all-ids-threshold.
Too high an all-ids-threshold value can impact performance.
The dsadm analyze-indexes displays which keys are ALLID or close to be, so it can be matched with the output of dsconf analyze-index-filters. If a search specifies a filter whose value is an allid key, the search might not be indexed, depending on the entire search filter as mentioned above.