Lentitud reporte reportviewer

12/07/2009 - 16:53 por Carolina | Informe spam
Colgué un control reportviewer en un form. Lo configuro para ejecutar
un ServerReport de Reporting services.
Resulta que la primera vez que cargo el form tarda casi 20 segundos en
cargar pero si cierro el form y vuelvo a entrar lo hace a velocidad
normal.

A que se debe?
parece como si el generador de reportes debe warm-up o inicializarse
cuando se ejecuta por primera vez un reporte?

Hay algun workaround o alternativa para evitar esa lentitud que
desespera a los usuarios?

grax!

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
12/07/2009 - 22:56 | Informe spam
"Carolina" wrote in message
news:
Resulta que la primera vez que cargo el form tarda casi 20 segundos en
cargar pero si cierro el form y vuelvo a entrar lo hace a velocidad
normal.

A que se debe?
parece como si el generador de reportes debe warm-up o inicializarse
cuando se ejecuta por primera vez un reporte?



Tendrías que rodar el Performance Monitor en el servidor y capturar unos
cuantos contadores para ver qué es lo que está tardando. Puede ser que se
trate del propio motor de los Reporting Services, pero también puede ser que
el servidor SQL esté cargando desde disco las páginas de la base de datos
que contienen los datos del informe. La segunda vez va rápido porque se
quedan las páginas en el caché, y ya no las tiene que leer de disco.

Hay algun workaround o alternativa para evitar esa lentitud que
desespera a los usuarios?



Suponiendo que el problema sea el segundo (el tiempo que tarda en leer
los datos), puedes usar las herramientas de configuración del propio Report
Server para hacer que el informe se calcule por la noche y el resultado se
quede en el caché de informes, de forma que se encuentre inmediatamente
disponible cuando los usuarios lo necesiten.
También, en el caso de que la lentitud se deba a la carga de páginas, es
probable que los índices de la base de datos no estén suficientemente
optimizados para resolver el informe, y esté usando barridos de tabla en
lugar de búsquedas indexadas. Prueba a examinar el plan de ejecución de las
consultas de los informes desde el SSMS, y si ves que hay barridos ("Table
Scan" o "Clustered Index Scan"), utiliza el Index Tuning Wizard para
optimizar los índices.
Respuesta Responder a este mensaje
#2 Carolina
13/07/2009 - 13:30 | Informe spam
En realidad lo hemos probado con reportes muy simples, por tanto no
tiene que ver con la complejidad de la query o falta de indices.

Vimos tambien que aun sin ejecutar el reporte, simplemente con por
ejemplo asignarle parametros o cambiar la propiedad Messages, como
quiera hace lo mismo. Da la impresion que es al momento de abrir la
conexion por primera vez que hace ese largo warm-up. (por cierto,
habria alguna manera de compartir la misma conexion de la aplicacion
con la que usa el reporte?)

Eso lo inferimos porque luego hicimos la prueba con reportes locales
(LocalReport) y no tienen ese problema.

En google aparecen posts de mucha otra gente con el mismo problema
para los ServerReport's.

Nota: Usamos SQL 2008 Express with AS. No lo hemos probado con otras
versiones


On 12 jul, 16:56, "Alberto Poblacion" <earthling-
wrote:
"Carolina" wrote in message

news:

> Resulta que la primera vez que cargo el form tarda casi 20 segundos en
> cargar  pero si cierro el form y vuelvo a entrar lo hace a velocidad
> normal.

> A que se debe?
> parece como si el generador de reportes debe warm-up o inicializarse
> cuando se ejecuta por primera vez un reporte?

    Tendrías que rodar el Performance Monitor en el servidor y capturar unos
cuantos contadores para ver qué es lo que está tardando. Puede ser que se
trate del propio motor de los Reporting Services, pero también puede ser que
el servidor SQL esté cargando desde disco las páginas de la base de datos
que contienen los datos del informe. La segunda vez va rápido porque se
quedan las páginas en el caché, y ya no las tiene que leer de disco.

> Hay algun workaround o alternativa para evitar esa lentitud que
> desespera a los usuarios?

   Suponiendo que el problema sea el segundo (el tiempo que tarda en leer
los datos), puedes usar las herramientas de configuración del propio Report
Server para hacer que el informe se calcule por la noche y el resultado se
quede en el caché de informes, de forma que se encuentre inmediatamente
disponible cuando los usuarios lo necesiten.
   También, en el caso de que la lentitud se deba a la carga de páginas, es
probable que los índices de la base de datos no estén suficientemente
optimizados para resolver el informe, y esté usando barridos de tabla en
lugar de búsquedas indexadas. Prueba a examinar el plan de ejecución de las
consultas de los informes desde el SSMS, y si ves que hay barridos ("Table
Scan" o "Clustered Index Scan"), utiliza el Index Tuning Wizard para
optimizar los índices.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida