2011-02-15 2 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

루프를 시작하기 전에 개수를 확인해야합니까? 결과가 null이 아닌지 확인한 다음 인 것을 반복합니다. (당신이 Count 체크를 처리하는 'For'루프를 처리한다고 말하면서 왜 연결을 열거하면 카운트를 얻는 데 여분의 시간이 필요합니까?)

+0

이 문제는 동적 그룹이라는 것을 알게되었습니다. 동적 그룹의 모든 사용자를 확장하여 찾고있는 사용자가 있는지 확인해야했습니다. 우리가 멤버와 동적 그룹을 추가함에 따라 관리가 어려워졌습니다. – Boz