2009-03-17 787 views
6

Tengo un paquete SSIS que tiene un paquete secundario que está fallando. El mensaje de error no es muy útil.¿Está ejecutando paquetes SSIS en asignaciones de memoria separadas o aumentando el tamaño predeterminado del búfer?

El intento de añadir una fila a la memoria intermedia tarea Flujo de datos Código de error 0xC0047020

El problema parece ser que estoy quedando sin memoria virtual para completar el trabajo.

Encontré un hilo del foro que puede ayudar a resolver el problema. http://social.msdn.microsoft.com/forums/en-US/sqlintegrationservices/thread/d6d52157-0270-4200-a8c2-585fa9a0eed5/

De las soluciones ofrecidas, aunque no estoy seguro de cómo:

  1. aumentar tamaño de búfer predeterminado
  2. asignar una pacakage niño en su propia asignación de memoria.

Estoy ejecutando el paquete todos los días en SQL Server 2005. Estaba funcionando bien todos los días hasta el día 12. Supongo que el archivo dat que estamos usando para importar datos en la base de datos creció a un tamaño que era demasiado grande para que lo manejara la base de datos. Sin embargo, es solo un archivo csv de 8.90MB. La importación es una importación de columna recta a columna.

El problema del paquete secundario es el paso 1, falla y continúa y completa con éxito los siguientes 8 pasos.

Respuesta

4

¿Cuánta memoria está asignada a SQL Server? ¿Cuánta memoria está asignada fuera del espacio de proceso de SQL Server?

La razón por la que pregunto es porque la memoria SSIS se asigna desde el área de memoria memToLeave que se encuentra fuera del espacio de proceso de SQL Server.

Consulte here para obtener detalles sobre la configuración de la cantidad de memoria disponible para la parte memToLeave de la memoria.

Para la optimización del rendimiento genérico de SSIS, consulte el siguiente artículo.

http://technet.microsoft.com/en-gb/library/cc966529.aspx

Espero que esto tenga sentido, pero no dude en escribirme una línea una vez que haya digerido el material.

Cheers,

+0

FYI, el enlace "aquí" ha desaparecido. –

1

Random thought: memory leak?

Nuestro clúster de prod (big corporatebbuild) era SQL 2005 SP1. Fugas de memoria, reinicio necesario cada 1-4 semanas.

SP2 + HF 3068: fija

1

Para cambiar el tamaño del búfer, seleccione la tarea de flujo de datos y cambiar DefaultBufferMaxRows, propiedades MaxBufferSize. Ellos juntos determinan el tamaño del buffer.

Tenga en cuenta que en el debate que ha vinculado, el usuario originalmente aumentó el tamaño del búfer (a 100 Mb), lo que probablemente causó el problema, y ​​la recomendación fue disminuirlo. El tamaño predeterminado del búfer (10Mb) generalmente debería estar bien.

Para ejecutar el paquete hijo en un proceso separado, establezca la propiedad ExecuteOutOfProcess de la tarea Ejecutar paquete (en el paquete maestro).

Pero antes que nada: asegúrese de que realmente está ejecutando memoria virtual, no memoria real, que generalmente es más probable. Mire al administrador de tareas en los procesos que consumen memoria en esta máquina.

Cuestiones relacionadas