performance sql-server-2008 reporting-services ssrs-2008

performance - Misterio de rendimiento de SSRS



sql-server-2008 reporting-services (2)

Tengo un procedimiento almacenado que devuelve aproximadamente 50000 registros en 10 segundos usando 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 ni 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?


Comenzaría con un rastreo de SQL Profiler 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 procesos almacenados docenas de veces sin ningún motivo aparente y esto ocasionaba un rendimiento horrible en ocasiones, 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 SQL Server entrega los datos en 10 segundos y luego el servicio SSRS se está ahogando en alguna parte.


La solución principal para acelerar los informes de SSRS es almacenar en 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 encontrará aumentos masivos en la velocidad de la carga.

También puede encontrar reinicios mensuales del dominio de aplicación de SSRS para resolver su problema.

Tenga en cuenta que lo hago a diario y profesionalmente y no estoy simplemente depilando poético en SSRS

Almacenamiento en caché en SSRS http://msdn.microsoft.com/en-us/library/ms155927.aspx

Precargando el caché http://msdn.microsoft.com/en-us/library/ms155876.aspx

Si no le gusta que los informes iniciales tarden mucho y sus datos son estáticos, es decir, un diario general diario o similar, lo que significa que los datos son relativamente estáticos a lo largo del día, puede aumentar la duración de la caché .

Finalmente , también puede optar por que los gerentes de negocios reciban estos informes a través de suscripciones por correo electrónico , que les enviarán un informe puntual de Excel que les resultará más fácil y más sistemático.

También puede usar parámetros en SSRS para permitir un análisis más fácil 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.

Vea una pregunta casi idéntica aquí: Problemas de rendimiento con SSRS