Pregunta

Estoy intentando sin éxito provocar una SPQueryThrottledException localmente para depurar un problema que tiene un cliente.

Estoy usando SPSiteDataQuery para consultar varios sitios que contienen 4000 a 8000 artículos cada uno, por un total de más de 43000.La consulta se ejecuta en una instancia elevada del SPWeb raíz de la colección de sitios.

La consulta se filtra utilizando tanto el <Webs> y <Lists> elementos, pero no por ningún otro atributo, y no realiza consultas de forma recursiva.Se ejecuta en el ámbito de la colección de sitios.

La consulta se ejecutó correctamente cuando la activaron cuentas de usuario con permisos de nivel Contribute y superiores (aunque esto es redundante dada la elevación).Los niveles de permiso más bajos fallarían por otras razones.

El giro es este:Cuando se ejecuta localmente, la consulta tiene éxito, pero cuando se ejecuta en la instancia activa del cliente, la consulta falla cuando hay más de 5000 Los artículos se consultan en total.

Ambos tenemos la misma configuración de aceleración:

  • 5000 límite normal
  • Límite de administración/auditoría de 20000
  • La eliminación del límite de consultas fuera de horario está deshabilitada
  • Límite de búsqueda de 8 campos (al que no estamos cerca)

Entonces, ¿por qué la consulta se ejecuta correctamente aquí, con solicitudes de elementos que superan incluso el límite del administrador?

¿Fue útil?

Solución 2

Un colega mío investigó un poco porque despertó su curiosidad.Parece que la causa de la diferencia es la cuenta de usuario a la que se escala el proceso.

Nuestro cliente siguió las recomendaciones de Microsoft y configuró una cuenta que no tiene permisos de administrador.Mientras que yo estaba ejecutando una caja de desarrollo sin tales restricciones.

Otros consejos

¿Están indexados los campos de las listas de su entorno local?Si están indexados, no se producirá la limitación.

Licenciado bajo: CC-BY-SA con atribución
scroll top