Warum erhalte ich KEINE SPSiteDataQuery throttled Ausnahme?
-
10-12-2019 - |
Frage
Ich versuche erfolglos, eine zu verursachen SPQueryThrottledException
lokal, um ein Problem zu beheben, das ein Kunde hat.
Ich benutze SPSiteDataQuery
um mehrere Websites abzufragen, die enthalten 4000 zu 8000 artikel jeweils, insgesamt über 43000.Die Abfrage wird für eine erhöhte Instanz des Stamm-SPWeb der Websitesammlung ausgeführt.
Die Abfrage wird gefiltert, indem sowohl die <Webs>
und <Lists>
elemente, aber nicht nach einem anderen Attribut, und fragt nicht rekursiv ab.Es wird im Bereich der Websitesammlung ausgeführt.
Die Abfrage wurde erfolgreich ausgeführt, wenn sie von Benutzerkonten mit Berechtigungen der Beitragsebene und höher ausgelöst wurde (obwohl dies angesichts der Erhöhung redundant ist).Niedrigere Berechtigungsstufen würden aus anderen Gründen fehlschlagen.
Der Twist ist das:Bei lokaler Ausführung ist die Abfrage erfolgreich, bei Ausführung in der Live-Instanz des Kunden schlägt die Abfrage jedoch fehl, wenn mehr als 5000 artikel werden insgesamt abgefragt.
Wir haben beide die gleichen Drosselungseinstellungen:
- 5000 normale Grenze
- 20000 Administrator- / Prüflimit
- Das Entfernen des Abfragelimits außerhalb der Geschäftszeiten ist deaktiviert
- 8 feld-Lookup-Limit (in dessen Nähe wir noch lange nicht sind)
Warum läuft die Abfrage hier erfolgreich, wobei Artikelanforderungen weit über das Administratorlimit hinausgehen?
Lösung 2
Ein Kollege von mir hat ein bisschen recherchiert, weil es ihre Neugier geweckt hat.Es scheint, dass die Ursache für den Unterschied ist das Benutzerkonto, auf das der Prozess eskaliert ist.
Unser Kunde hat die Empfehlungen von Microsoft befolgt und ein Konto eingerichtet, das keine Administratorrechte besitzt.Während ich auf einer Entwicklungsbox ohne solche Einschränkungen lief.
Andere Tipps
Sind die Felder in den Listen in Ihrer lokalen Umgebung indiziert?Wenn sie indiziert sind, tritt keine Drosselung auf.