Wie kann ich optimieren den folgenden Code, der derzeit mehr als 2 Minuten dauert abrufen und Schleife durch 800+ Datensätze aus einem Pool von über 100 K Datensätze, Rückkehr 6 Felder pro Datensatz (ca. 20 Sekunden pro zusätzliches Feld ergänzt):Wie beschleunige ich den Datenabruf von .NET AD in ColdFusion?
<cfset dllPath="C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.DirectoryServices.dll" />
<cfset LDAPPath="LDAP://" & arguments.searchPath />
<cfset theLookUp=CreateObject(".NET","System.DirectoryServices.DirectoryEntry", dllPath).init(LDAPPath) />
<cfset theSearch=CreateObject(".NET","System.DirectoryServices.DirectorySearcher", dllPath).init(theLookUp) />
<cfset theSearch.Set_Filter(arguments.theFilter) />
<cfset theObject = theSearch.FindAll() />
<cfloop index="row" from="#startRow#" to="#endRow#">
<cfset QueryAddRow(theQuery) />
<cfloop list="#columnList#" index="col">
<cfloop from="0" to="#theObject.Get_Item(row).Get_Properties().Get_Item(col).Get_Count()-1#" index="item">
<cftry>
<cfset theQuery[col][theQuery.recordCount]=ListAppend(theQuery[col][theQuery.recordCount],theObject.Get_Item(row).Get_Properties().Get_Item(col).Get_Item(item),"|") />
<cfcatch type="any">
</cfcatch>
</cftry>
</cfloop>
</cfloop>
</cfloop>
Okay, also habe ich das ausprobiert ... und ich sehe etwa 30% weniger Zeit für die Ausführung ... das scheint Senes zu machen, weil wir effektiv ein Drittel der Aufrufe für Artikel reduziert haben Singular. Ich bin auf jeden Fall an anderen Optimierungen interessiert, die Sie sich vorstellen können ... – Brian