2011-05-25 46 views
9

Tengo un paquete SSIS que importa los datos en la base de datos de SQL Server 2008. He configurado el trabajo de programación en el Agente de SQL Server para ejecutar ese paquete. Cuando reviso el historial, solo pude ver si el trabajo se ejecutó correctamente o no. No pude ver otros mensajes aparte de eso.¿Cómo verificar los resultados del trabajo del paquete SSIS después de que se haya completado su ejecución?

Me gustaría saber cuántos registros se importan cada vez que se ejecuta el trabajo. ¿Cómo puedo monitorear eso? ¿Debo usar los componentes adicionales en el paquete SSIS o configurar algunas configuraciones en la Configuración de tareas del Agente SQL Server?

Encontré algunas instalaciones de registro en la Configuración de tareas del Agente de SQL Server, pero no estoy seguro si puede cumplir mis requisitos o no.

Respuesta

19

Si solo está interesado en conocer las columnas que se están procesando y no está interesado en la información para un uso posterior, una opción posible es hacer uso de la función de registro de SSIS. Así es como funciona para las tareas de flujo de datos.

  1. Haga clic en el paquete SSIS.
  2. En los menús, seleccione SSIS -> Registro ...
  3. En la página Configurar registros de SSIS: de diálogo, seleccione el tipo de proveedor y haga clic en Agregar. Elegí SQL Server para este ejemplo. Marque la casilla de verificación Nombre y proporcione el origen de datos en la columna Configuración. Aquí SQLServer es el nombre del administrador de conexión. SSIS creará una tabla denominada dbo.sysssislog y almacenará el procedimiento dbo.sp_ssis_addlogentry en la base de datos que seleccionó. Consulte la captura de pantalla # 1 a continuación.
  4. Si necesita las filas procesadas, seleccione la casilla OnInformation. Aquí en el ejemplo, el paquete se ejecutó correctamente para que los registros se encuentren en OnInformation. Es posible que necesite ajustar esta selección de eventos según sus requisitos. Consulte la captura de pantalla # 2 a continuación.
  5. Aquí hay una ejecución del paquete de muestra dentro de la tarea de flujo de datos. Consulte la captura de pantalla # 3 a continuación.
  6. Aquí hay un ejemplo de salida de la tabla de registro dbo.sysssislog. Solo he mostrado las columnas id y mensaje. Hay muchas otras columnas en la tabla. En la consulta, estoy filtrando la salida solo para el paquete llamado 'Package1' y el evento 'OnInformation'. Puede observar que los registros con ids 7, 14 y 15 contienen las filas procesadas. Consulte la captura de pantalla # 4 a continuación.

Espero que ayude.

Captura de pantalla # 1:

Logging

Captura de pantalla # 2:

Events

Captura de pantalla # 3:

Execution

Captura de pantalla # 4:

Data

+0

justo lo que estaba buscando! ;) –

-2

Si inserta filas utilizando la tarea Ejecutar SQL, puede obtener el conteo de registros usando la variable @@ ROWCOUNT. Entonces deberías escribirlo en algún lado para leerlo más tarde para el informe.

0

Aquí hay otro enfoque para cuando el historial de trabajos de SQL Server no representa salida de paquetes SSIS: utilizar las líneas de comandos DTExec.

(Al revés: este enfoque pone la salida del trabajo en el que cualquier otra persona de apoyo que sería esperar para encontrarlo:. En el historial de trabajos
de disminución en grandes paquetes: si tiene un paquete SSIS de largo, con un montón de tareas o componentes, y muchos resultados, el historial de tareas dividirá la salida del paquete en muchas líneas de historial de trabajos, haciendo que el enfoque en la respuesta anterior -logging en una tabla- sea más fácil de leer.)

Para mostrar el paquete SSIS salida en el historial de vistas del trabajo:
(1) Cambie los pasos del trabajo de tipo "Paquete de SQL Server Integration Services" a "Sistema operativo (CmdExec)",
(2) Use las líneas de comando DTEXEC para ejecutar los paquetes.

Ejemplo de línea de comandos:

DTExec /DTS "\MSDB\myPkgName" /DECRYPT pkgPass /MAXCONCURRENT " -1 " /CHECKPOINTING OFF 

Tenga en cuenta que si el paquete SSIS requiere 32 BITS ejecución (válido para exportar a Excel, por ejemplo), a continuación, utilizar la utilidad DTEXEC en "Archivos de programa (x86) "calificándolo por completo. Ejemplo, donde la aplicación de SQL Server se instala en una "E:" unidad, y donde se está utilizando SQL Server 2014:

"E:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\DTExec.exe" /DTS "\MSDB\myPkgName" /DECRYPT pkgPass /MAXCONCURRENT " -1 " /CHECKPOINTING OFF 

Si los paquetes SSIS están en el sistema de archivos (como archivos "dtsx") , luego reemplace "/ DTS" por "/ FILE".

Si sus paquetes SSIS se colocaron en SSISDB (utilizando el "modelo de implementación de proyectos", que está disponible comenzando con SQL Server 2012, en lugar del "modelo de implementación de paquetes" anterior, reemplace "/ DTS" con "/ ISSERVER ".

A continuación, vaya a la página "Avanzado" del paso de trabajo y asegúrese de que la casilla esté marcada para "Incluir paso de salida en el historial".

Por último, considere "Ejecutar como" en su paso de trabajo: si sus pasos de trabajo "Ejecutar como" ya estaban configurados como proxy, en los pasos del tipo "Paquete de SQL Server Integration Services", ya ha activado ese proxy al subsistema "Paquete de SQL Server Integration Services". Ahora, para hacer líneas de comando como las anteriores, verifique las propiedades del proxy y asegúrese de que también esté activo en el subsistema "Sistema operativo (CmdExec)".

referencia de MSDN: SSIS Output on Sql Agent history

0

Si ha implementado el paquete de servicios de integración de catálogo de la base de datos (en lugar de cargarlo desde un sistema de archivos) se puede obtener fácilmente informes detallados.

Abra el nodo de catálogo en SQL Server Management Studio, haga clic con el botón derecho en el nombre del paquete, seleccione Informes | Informes estándar | Todas las ejecuciones y ver detalles sobre cada paso del trabajo y sus subcomponentes, incluidos los registros importados.

Cuestiones relacionadas