Tengo un procedimiento almacenado que devuelve aproximadamente 50000 registros en 10 segundos utilizando como máximo 2 núcleos en SSMS. El informe de SSRS utilizando el procedimiento almacenado tardaba 20 minutos y maximizaba el procesador en un servidor de 8 núcleos durante todo el tiempo. El informe fue relativamente simple (es decir, sin gráficos, cálculos). El informe no parecía ser el problema, ya que escribí las filas 50K en una tabla temporal y el informe podría mostrar los datos en unos segundos. Probé muchas ideas diferentes para probar la alteración del procedimiento almacenado cada vez, pero manteniendo el código original en una ventana separada para volver a. Después de una modificación del procedimiento almacenado, volviendo al código original, el informe y la utilización del servidor comenzaron a ejecutarse rápidamente, de manera comparable al rendimiento del procedimiento almacenado solo. Todo está bien por ahora, pero me gustaría llegar al fondo de lo que causó esto en caso de que vuelva a suceder. ¿Algunas ideas?Misterio de rendimiento SSRS
Respuesta
Comenzaría con una traza del Analizador de SQL tanto del procedimiento almacenado cuando lo ejecuta normalmente, y luego el mismo SP cuando es llamado por SSRS. Asegúrese de incluir los planes de ejecución involucrados, para que pueda ver si está tomando malas decisiones (aunque parece poco probable: el SQL Server debe ejecutar un plan óptimo, o al menos coherente, independientemente de la fuente de la consulta).
Solíamos tener casos en los que Business Objects ejecutaba los procesos almacenados docenas de veces sin ningún motivo aparente y esto ocasionaba ocasionalmente un rendimiento horrible, aunque nunca he visto el mismo comportamiento con SSRS. Sin embargo, puede ser un lugar para comenzar. También verá los tiempos de inicio/finalización de la ejecución, esto dejará en claro si la capa de la base de datos está colgando, o si el Servidor SQL devuelve los datos en 10 segundos y luego el servicio SSRS se está ahogando en alguna parte.
La principal solución para acelerar los informes de SSRS es caché los informes. Si uno hace esto (ya sea precargando el caché a las 7:30 a.m., por ejemplo) o almacena en caché los informes con éxito, uno obtendrá grandes ganancias en velocidad de carga.
También puede encontrar reinicios mensuales del dominio de la aplicación SSRS para resolver su problema.
Tenga en cuenta que hago esto todos los días y profesionalmente y no soy simplemente la depilación con cera poética sobre SSRS
almacenamiento en caché en SSRS http://msdn.microsoft.com/en-us/library/ms155927.aspx
pre-cargar el caché http://msdn.microsoft.com/en-us/library/ms155876.aspx
Si lo hace no como los informes iniciales que toman mucho tiempo y sus datos son estáticos, es decir, un diario general diario o similar, lo que significa que los datos son relativamente estáticos durante el día, usted m ay aumente la vida útil de caché.
Finalmente, también puede optar por los gerentes de empresas a cambio reciben estos informes a través de suscripciones de correo electrónico, que les enviará un punto en el tiempo informe de Excel que pueden encontrar más fácil y más sistemático.
También puede usar parámetros en SSRS para facilitar el análisis por parte del usuario y consultas más rápidas. En el generador de consultas escriba IN (@SSN) debajo de la columna Filtro que desea parametrizar, luego lo encontrará creado en la carpeta de parámetros justo arriba de las fuentes de datos en la esquina superior izquierda de su GUÍA BIDS. [Si no ve la sección de fuente de datos en SSRS, presione CTRL + ALT + D.
Ver una pregunta casi idéntica aquí: Performance Issuses with SSRS
- 1. Problemas de rendimiento con SSRS
- 2. misterio de análisis de DateJS
- 3. misterio de puntos en XAML
- 4. Perl: escribir misterio de la velocidad?
- 5. Android Market, resultados de búsqueda posición Misterio
- 6. Plantilla operador de asignación sobrecarga misterio
- 7. El misterio de la herencia de Java EE 6 anotaciones
- 8. Los argumentos de misterio aprobadas por setTimeout en Firefox
- 9. SSRS indicador de tamaño
- 10. Suma condicional de SSRS
- 11. ¿Eliminando el "misterio-consing" en esta función Common Lisp?
- 12. matriz multi-dimensional en C++, un misterio para mí :(
- 13. misteriosas páginas extras de SSRS
- 14. Telerik ¿Informes sobre SSRS?
- 15. Internacionalización en SSRS
- 16. SSRS 2012 Report Models
- 17. Acción condicional en SSRS
- 18. SSRS Reports Versioning
- 19. Extremos SSRS alternativos
- 20. XSLT en SSRS informe
- 21. Multilenguaje en SSRS
- 22. Almacenamiento en caché vs Informe de instantánea en SSRS
- 23. SSRS Verificar grupo filtrado RowCount
- 24. Nuevo en la configuración SSRS
- 25. SSRS: Cómo contar filas verdaderas
- 26. diferencia entre RDLC y SSRS
- 27. Comentarios en Expresiones de informes de SSRS
- 28. Fuente de datos compartida dinámica de SSRS
- 29. Problema de informe de SSRS en wpf
- 30. ¿Recibe una lista de informes de SSRS?
índices de las tablas? Un plan de ejecución obsoleto? Las estadísticas se actualizaron? ¿Tenías un registro de SqlProfiler? Eso ayudará en el futuro ... – rene
¿Simplemente renderizado o renderizado como PDF? – SQLMason
Dan: simplemente presenta un informe estándar en la web. René - No ejecuté SqlProfiler durante la solución de problemas. Lo he ejecutado en consultas locales, pero ¿hay algo especial que deba hacer para registrar las llamadas al SSRS DB? Tampoco profundicé en los registros de ejecución de SSRS, pero estaba considerando si la otra solución de problemas no había funcionado. ¿Cómo se puede detectar un plan de ejecución obsoleto? – user101654