He creado un rdl doc que apunta a un proc que devuelve el 90 000 filas y me estoy poniendo de memoria excepción. Hay un límite para el número de filas que el informe de los proyectos puede manejar?

Actualmente he cambiado el proceso que impulsa mi informe que acaba de hacer un select Top 90 000. Mis especificaciones son para ser capaz de crear un informe con 120 000 filas. Mi informe es una matriz.

Juro que la semana pasada me genera un informe que ha 106800 filas en ella, pero ahora de repente no puedo.

He escrito una extensión de representación y aquí es parte de la excepción cuando me paso en el código.

eInfo: 2/12/2009 12:03:53
PM prairieFyre.ReportActions.RenderReport: Error de representación de informe
Microsoft.La presentación de informes.WinForms.LocalProcessingException: Un error
ocurrió durante el procesamiento local de informes. —>
Microsoft.Carpeta reportingservices.ReportProcessing.ReportProcessingException:
Se produjo un error inesperado en el Procesamiento del Informe. —>
Sistema.OutOfMemoryException: Excepción de tipo
‘Sistema.OutOfMemoryException’ fue lanzado. en
Sistema.IO.MemoryStream.set_Capacity(valor Int32) en
Sistema.IO.MemoryStream.EnsureCapacity(valor Int32) en
Sistema.IO.MemoryStream.Write(Byte[] buffer, Int32 offset, Int32 cuenta)
en el Sistema.IO.BinaryWriter.Write(Cadena de valor) en
Microsoft.ReportingServices.ReportProcessing.Persistence.IntermediateFormatWriter.ReportServerBinaryWriter.WriteString(Cadena
stringValue) ….

OriginalEl autor | 2009-02-12

3 Comentarios

  1. 4

    Creo que no es una limitación, aparte de la configuración de su hardware. Si en un equipo de 32 bits el proceso de trabajo que se está procesando este tiene menos de 2 gigabytes de memoria para trabajar con, probablemente cerca de 1 gigabyte, cuando se toma en memoria de modo de núcleo. Si vas a servir de gran informes como este, es probable que necesite una instalación de 64 bits con al menos 4 gb de memoria o más en la caja. Esta configuración permitirá que el proceso de trabajo para asignar más de 2 gigas de memoria utilizable para completar estas solicitudes grandes sin problema.

    Si una actualización de hardware no es una opción, también puede considerar estas alternativas.

    • Usted dijo que el informe era un informe de la matriz por lo que parece que no se muestran todos los datos de usuario, pero la agregación de ella. Podría usted pre-agregado algunos de estos datos en la base de datos y, a continuación, sólo utilizar los SSRS para la pantalla?

    • Ya que el informe no es más que un archivo XML, construir el informe de la cadena XML de SQL server o mediante algún script o proceso. Esto puede ser un montón de trabajo.

    OriginalEl autor James

  2. 3

    La pila indica que el MemoryStream utiliza para almacenar el informe de resultado de la ejecución no puede aumentar (doble) es el tamaño.

    Esto normalmente es causado por dirección de fragmentación del espacio, que comúnmente no puede ser resuelto mediante la adición de hardware.

    Microsoft ReportViewer está limitado en la cantidad de datos que puede procesar debido a que está diseñado para almacenar el informe intermedio de ejecución resultado en un MemoryStream que por desgracia necesita un cuadráticamente cantidad cada vez mayor de libre contiguo espacio de direcciones, que en una costumbre .RED de aplicación (2 GB de espacio de direcciones) no es mayor que 256 MB, y a menudo mucho más pequeño.

    En esta secuencia, por ejemplo, todos los valores de campo, valores agregados, las expresiones y las imágenes se almacenan, por lo que el tamaño depende directamente del tamaño de los conjuntos de datos agrega el informe.

    Para analizar el espacio de direcciones y objetos de una .NETO de la aplicación, es mejor para depurar con WinDBG (Herramientas de Depuración para Windows) y el SOS extensiones.

    Valioso comandos para analizar la fragmentación de las direcciones son:

    • !dirección -resumen
    • lm
    • !EEHeap -gc
    • !DumpHeap -stat

    En este caso en particular, puede ser posible reducir la cantidad de datos por la pre-agregación de valores que ya están en el origen de datos y no en la Matriz.

    Más consejos son dados por el artículo de Knowledge Base «puede recibir el Sistema.OutOfMemoryException’ mensaje de error cuando se utiliza SQL Server Reporting Services» [1].

    [1]: http://support.microsoft.com/kb/909678 «del Sistema.OutOfMemoryException» mensaje de error cuando se utiliza SQL Server Reporting Services

    OriginalEl autor user33675

  3. 0

    Comprobar que su interactiveHeight propiedad no se establece a 0.
    http://bidn.com/blogs/MMilligan/bidn-blog/2903/ssrs-gotcha-interactiveheight=0

    Por favor, incluya una descripción de los pasos necesarios aquí en este post, o se corre el riesgo de ser eliminados como «No Respuesta». Usted todavía puede incluir el enlace si lo desea, pero sólo como una ‘referencia’. También tenga en cuenta que debe revelar si el enlace que apunten a tu blog/sitio.
    Esta vinculada me ayudó a salir la cosa extraña en mi informe era que yo tenía que dar el alto interactivo especialmente a 0. Así que de lo contrario todo, pero ayudó.

    OriginalEl autor Mike Milligan

Dejar respuesta

Please enter your comment!
Please enter your name here