搜尋速度緩慢可能肇因於系統索引清單大小超過了索引清單臨界值。索引清單臨界值是每個索引鍵值的上限數。若要判定是否已超過索引清單臨界值,請檢查存取記錄。存取記錄 RESULT 訊息結尾的 notes=U 旗標表示執行了未編製索引的搜尋。相同連線與作業的前一則 SRCH 訊息會指定使用的搜尋篩選。下列兩行範例會追蹤未編製索引的搜尋 cn=Smith,並傳回 10,000 個項目。已從訊息移除時間戳記。
conn=2 op=1 SRCH base="o=example.com" scope=0 filter="(cn=Smith)" conn=2 op=1 RESULT err=0 tag=101 nentries=10000 notes=U |
如果系統經常會超過索引清單臨界值,請考慮提高臨界值以改善效能。下列程序使用 dsconf set-server-prop 指令修改 all-ids-threshold 特性。如需有關調校索引與 all-ids-threshold 特性的更多資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 Reference」中的「Tuning Indexes for Performance」。
您可以使用 DSCC 執行此作業。如需相關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。
調整索引清單臨界值。
您可以在下列任何一個層級調整索引清單臨界值:
實例層級:
dsconf set-server-prop -h host -p port all-ids-threshold:value |
尾碼層級:
dsconf set-suffix-prop -h host -p port suffix-DN all-ids-threshold:value |
項目層級:
dsconf set-index-prop -h host -p port suffix-DN all-ids-threshold:value |
依搜尋類型的索引層級:
dsconf set-index-prop -h host -p port suffix-DN all-ids-threshold search-type:value |
其中 search-type 為下列其中之一:
eq-enabled 相同
pres-enabled 存在
sub-enabled 子字串
近似索引無法配置 all-ids-threshold 特性。
您可以在依搜尋類型的索引層級使用 DSCC,設定臨界值。如需更多資訊,請參閱目錄伺服器線上說明。
重新產生尾碼索引。
請參閱產生索引。
如果已為舊的所有 ID 臨界值調校資料庫的快取大小,且伺服器有足夠的實體記憶體,請考慮加資料庫的快取大小。
根據所有 ID 臨界值增量範圍的 25%,增加資料庫的快取大小。
換言之,如果將所有 ID 臨界值從 4000 增加到 6000,便可將資料庫快取大小增加約 12.5%,以便容納增加的索引清單大小。
資料庫快取大小使用屬性 dbcachesize 進行設定。憑經驗尋找最適大小,再將變更套用到生產伺服器。