Perché non sto ricevendo un'eccezione a strozzatura sparitatedquery?
-
10-12-2019 - |
Domanda
Sto tentando senza successo di causare un SPQueryThrottledException
Localmente per eseguire il debug di un problema che un cliente sta avendo.
Sto usando SPSiteDataQuery
per interrogare diversi Siti che contengono 4000 a 8000 Articoli ciascuno, per un totale di 43000 . La query viene eseguita contro un'istanza elevata della radice SPWeb della collezione del sito.
La query viene filtrata utilizzando sia gli elementi <Webs>
e <Lists>
, ma non da qualsiasi altro attributo, e non si tratta in modo ricorso in modo ricorsivo. Esegue la portata della raccolta del sito.
La query è eseguita correttamente quando attivata dagli account utente di autorizzazioni di livello di contribuzione e superiore (anche se questo è ridondante data l'elevazione). I livelli di autorizzazione inferiori non avrebbero fallito per altri motivi.
La torsione è questa: quando si esegue localmente la query suona, ma quando si esegue nell'istanza dal vivo del cliente, la query non riesce quando è più di 5000 vengono interrogati in totale.
Entrambi abbiamo le stesse impostazioni di limitazione:
- .
- 5000 limite normale
- Limite di amministrazione / Audit 20000
- La rimozione del limite della query fuori orario è disabilitato
- 8 Limite di ricerca sul campo (che non siamo da nessuna parte)
Allora perché la query che è in esecuzione con successo qui, con le richieste di articoli oltre anche il limite di amministrazione?
Soluzione 2
A colleague of mine did a bit of research as it piqued their curiosity. It seems the cause of the difference is the user account the process is escalated to.
Our customer has followed Microsoft's recommendations and set up an account that does not have administrator permissions. Whereas I was running on a development box with no such restrictions.
Altri suggerimenti
Are the fields in the lists on your local environment indexed? If they are indexed, then throttling will not occur.