2011-02-15 50 views
0

我有一個目錄搜索器正在尋找動態組。 當我嘗試處理結果時,需要30秒才能返回結果。 ds.findall速度非常快,但是當我試圖找出返回的記錄數量 或任何有關結果的記錄時,需要30秒。所以我認爲這是信息的實際復現發生的地方。爲什麼需要這麼長時間,有沒有辦法加快速度。代碼如下。目錄搜索器SearchResultCollection.count非常慢

query = "(&(objectClass=dynamicgroup)(member=cn=mvander,ou=reg,ou=Employees,ou=staff,o=wpsr))" 

Dim results As SearchResultCollection 
Dim result As SearchResult 
entry = GetValidDirectoryEntry(searchRootAdsPath, True) 

ds = New DirectorySearcher(entry) 
ds.PropertiesToLoad.Add(attributesToQuery("GroupMembership")) 
results = ds.FindAll 
'This line takes up to 30 seconds to return the results 
If results.Count > 0 Then 
'I have a for each loop that processes the results 

回答

0

在進入循環之前檢查計數是否絕對必要?難道你不能只是檢查,以確保結果不爲空,然後遍歷那裏? (既然你說在Count檢查之後你有一個處理'For'循環,爲什麼要用一個額外的時間來計算連接以獲得計數?)

+0

我發現問題是動態組。它必須擴展動態組中的所有用戶,以查看我正在尋找的用戶是否在其中。當我們添加了美眉和更多動態組合時,這變得難以管理。 – Boz 2011-02-24 21:43:18