2009-06-10 22 views
5

hola chicos recientemente me uní a una empresa. Me asignaron una tarea es mejorar el rendimiento de los informes existentes de SSRS.Problemas de rendimiento con SSRS

miré a los procedimientos almacenados que funcionan bien. Pero cuando se trata de la ejecución de informes, lleva tiempo.

Por favor, hágamelo saber cómo comenzar con esto? Gracias de antemano

+0

Probablemente obtendrá más respuesta sobre este tema si fuera a publicar esto en ServerFault, ya que el procedimiento almacenado está bien por cada pregunta. – Sung

+0

Sung: no hay nada de malo con las preguntas de Reporting Services en SO. – TheTXI

+0

@TheTXI: Oh, lo que quise decir es que venkat podría obtener otros tipos de consejos sobre cómo resolver problemas de SSRS desde el punto de vista de la gente de TI;) – Sung

Respuesta

6
  1. ¿El informe está haciendo sus propios cálculos sobre los datos que se devuelven y que podrían tomar tiempo y recursos?

  2. ¿El informe dibuja gráficos que tienen muchos puntos de datos que pueden tardar más en reproducirse que un gráfico con un incremento mayor?

  3. ¿El informe está cargando imágenes? ¿Cómo se manejan las imágenes? ¿Están integrados o vinculados desde una fuente externa?

  4. ¿Está creando una gran cantidad de grupos o desgloses que podrían llevar tiempo en la carga del informe para crear?

Responder a estas preguntas puede comenzar a apuntar en la dirección correcta en cuanto a cómo hacer que su informe sea más eficiente.

+0

Gracias por la respuesta .... Como dijimos, algunos informes están cargando imágenes de fuentes externas y otros informes que dibujan el gráfico – Anoop

0

Mejore el rendimiento en qué sentido? ¿Consume más memoria o acapara la CPU o usa demasiado disco IO? ¿A qué te refieres con decir que los SP funcionan bien? ¿Funcionan bien, pero toman mucho tiempo? o ¿Funcionan bien y se ejecutan rápidamente?

Comenzaré por comprender primero qué métrica de rendimiento mejorar & y luego identificar dónde está el cuello de botella si está en el servidor de informes o en el servidor de la base de datos. También puede usar perfmon para identificar cuellos de botella.

+0

Gracias por la respuesta ... Los SP se están ejecutando correctamente en SSMS. El problema se inicia después de vincular el SP al DataSet para la ejecución del informe. – Anoop

2

¿Qué quiere decir con 'los procedimientos almacenados funcionan bien'? Es posible que desee investigar esto más a fondo.

  • ejecutar los procedimientos almacenados desde SSMS y ver los planes de consulta que genera. C
  • Compruebe que las tablas están indexadas adecuadamente para acelerar las consultas
  • identificar y eliminar costra como se une innecesaria, columnas seleccionadas que no sean necesarios, etc
+0

Cuando ejecuto SP de SSMS, Ejecutar rápidamente, Después de vincular los SP al DataSet, entonces toma tiempo. – Anoop

6

Se podría buscar en la mesa ExecutionLog en la base de datos de servidor de informes. Esto le dará la separación de tiempos como recuperación de datos, procesamiento, representación, etc. Esto podría ayudarlo a avanzar en la dirección correcta.

Por ejemplo, en mi proyecto anterior, rendir informes en MS Excel tomaba mucho tiempo; cambiamos algunos informes para exportarlos de forma predeterminada al formato CSV y eso ayudó. Del mismo modo, también identificamos el cuello de botella en el procesamiento del informe y agregamos más recursos a la máquina. Esto ayudó también.

1

La solución primaria a exceso de velocidad informes de SSRS, independientemente de la base de datos, y como analista de negocios en un gran jerarquía, es para almacenar en caché los informes. Si uno hace esto de manera inteligente (ya sea precargando el caché a las 7:30 a.m., por ejemplo) o guarda en caché los informes con éxito durante 45 minutos, uno obtendrá grandes ganancias en velocidad de carga.

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

Desde su pregunta, usted tiene el almacenamiento en caché de golpe, si no te gusta los informes iniciales que toman este tiempo, y los datos se relativamente estático durante el día, , puede aumentar la vida útil de la memoria caché.

Por último, también puede optar para 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.

Si todos los que fallan, considere descubrimiento de parámetros, es decir

Si este es su búsqueda original

CREATE PROCEDURE [SP_Test_ParameterSniffing] 
@CustomerID INT 
AS 
BEGIN 

SELECT * 
FROM Customer c 
WHERE c.CustomerID = @CustomerID 

END 

Todo lo que necesita hacer es añadir un nuevo parámetro a su Código SP y asigne el valor pasado al SP a su nuevo parámetro y úselo en su cláusula WHERE:

CREATE PROCEDURE [SP_Test_ParameterSniffing] 
@CustomerID INT 
AS 
BEGIN 

DECLARE @CustomerID2 INT; 
SET @CustomerID2 = @CustomerID; 
SELECT * 
FROM Customer c 
WHERE c.CustomerID = @CustomerID2 

END 
1

A continuación se presentan algunas de las razones del bajo rendimiento (más el tiempo de ejecución) de los informes de SSRS

1) cuando se utiliza más parámetros en cascada para sus informes

2) cuando se está recibiendo directamente los datos de oráculo o fuente de datos externa.

3) usando la función "for xml()" en la consulta SQL del informe ssrs.

Solución: Trate de usar de si es posible

2

También puede probar para paginación personalizada en informes que muestran gran cantidad de datos instantánea de informe. Al hacerlo, redujo el tiempo de cobro y solo se muestra una cantidad limitada de registros en lugar de cargar datos completos por primera vez.

+0

No estoy seguro de entender lo que sugiere. ¿Puedes dejarlo más claro? –

+0

De forma predeterminada, SSRS usa el control de buscapersonas predeterminado, puede quitar ese control de buscapersonas usando su control de buscapersonas personalizado. Puede devolver un número limitado de filas de salida mediante el procedimiento almacenado. – Nishant

Cuestiones relacionadas