共用方式為


Tuple 索引的運作方式

Tuple 索引可用來優化具有 0 個以上 medial-search 字串 和 0 或 1 個最終搜尋字串的搜尋。 如果該屬性上沒有一般索引可用,它們也可以用來優化初始搜尋字串的搜尋。

您可以藉由在 searchFlags 屬性中設定對應至值 32 的位 5 來開啟屬性的 Tuple 索引編製。 這個屬性是在架構對象中設定,代表需要 Tuple 索引的屬性。 開啟 Tuple 索引編製的效能影響在於,針對該屬性設定的任何字串值都會擴充為 Tuple 索引中的大量片段。 當屬性展開時,它會在目錄資訊樹狀目錄中耗用較多的磁碟空間,而且也會更慢地更新。

Tuple 索引的設計目的是加速對窗體 *string*的搜尋。 加速可能相當可觀,因為這種形式的搜尋無法以任何其他方式優化,而且在其未優化的形式中,它會強制 Active Directory 伺服器在搜尋範圍中逐步執行查詢的每個物件。 因此,基底搜尋只會搜尋只會搜尋一個會使用較少資源的物件,立即子搜尋只會搜尋物件的子系(根據容器大小,可能會使用較少的資源或更多資源),而子樹搜尋會逐步執行基底物件下的整個子樹,這通常需要大量的資源,而且因為子樹大小而非常慢。

Tuple 索引的運作方式是將字串 分成 Tuple。 例如,字串串 「Active Directory」 會分成下列 Tuple:

  • "Active Dir"
  • "ctive Dire"
  • "tive Direc"
  • "ive Direct"
  • "ve Directo"
  • "e Director"
  • " Directory"
  • "Directory"
  • "irectory"
  • "rectory"
  • "ectory"
  • "ctory"
  • "tory"
  • "ory"

注意

當展開元組索引的字串時,目錄將會停止 32767 個字元。

 

Tuple 索引會包含每個 Tuple 的專案。 因此,如果使用者搜尋 *cto*,則 Active Directory 伺服器會查閱索引中 「cto」 的所有相符專案,在此情況下,請尋找具有 「Directory」 值之記錄的指標。

如果 medial 搜尋字串(*cto* 在上一個範例中)足夠具體,則搜尋會相當有效率,因為它可大幅減少 Active Directory 伺服器必須檢查的物件數目,以執行查詢。