Registro del recopilador de datos

El recopilador de datos captura y registra tipos diferentes de información para cada conjunto de recopilación en sus paquetes de recopilación. Esta información, escrita en tablas msdb, proporciona información sobre el estado actual del conjunto de recopilación y el resultado de la ejecución del paquete. Estas tablas de registro también proporcionan información estadística sobre cada conjunto de recopilación y sus paquetes. Los tipos de información siguientes están disponibles para supervisar y analizar la recopilación de datos:

  • Los conjuntos de recopilación actualmente en ejecución.

  • El historial de la ejecución de un conjunto de recopilación.

  • Para un conjunto de recopilación dado, la jerarquía de paquetes que se ejecutaron como parte de esa recopilación.

  • Para cada paquete, las horas de inicio y detención, la duración, el estado de la finalización y el número de filas procesadas.

  • Si un conjunto de recopilación devolvió un error, el paquete que produjo el error.

  • Si se ha producido un error en la ejecución del paquete, el componente de ese paquete en el que se produjo un error junto con el mensaje de error.

  • Para cada paquete, la secuencia de eventos de registro para los que el paquete se registró para cada ejecución.

Rol de SSI en el registro del recopilador de datos

El recopilador de datos implementa el registro utilizando procedimientos almacenados y las características de registro y ejecución de tareas de SQL Server 2008 Integration Services (SSIS). Estas características crean el resumen y las entradas de registro detalladas para los proveedores de registro cuando se producen los eventos en tiempo de ejecución. Para obtener más información, vea Implementar inicios de sesión en paquetes.

Los eventos registrados proporcionan puntos de referencia para todas las fases de ejecución de programas. Cada registro de evento se asigna al Id. de ejecución del paquete bajo el que se ejecutó una tarea. El recopilador de datos asigna estos Id. a los paquetes específicos para la recopilación y carga de datos.

Conjunto de recopilación y registro de paquetes

La arquitectura de alto nivel y la manipulación del registro para el recopilador de datos son como sigue:

  • Información del conjunto de recopilación, proporcionada por el recopilador de datos en el tiempo de ejecución se almacena en una tabla de recopilador de datos mediante un procedimiento almacenado. A cada registro se le proporciona un log_id que se usa para hacer referencia a las entradas de la tabla y asignar un paquete al identificador de ejecución de SSIS.

  • La información del paquete se registra al inicio y al final de cada ejecución de paquetes. Este registro se realiza ejecutando una tarea de Transact-SQL al principio y al final del flujo de control para cada paquete.

    • Mientras el paquete se está ejecutando, el recopilador de datos realiza actualizaciones periódicas y actualizaciones estadísticas. Cada paquete tiene una tarea de controlador de errores global (se implementa usando los eventos de paquetes de SSIS) que registra los eventos de error. Esto se realiza colocando la "Tarea Ejecutar SQL" de SSIS en el flujo de control para proporcionar el registro de eventos necesario que se requiere. Para obtener más información, vea Tarea Ejecutar SQL de SSIS y Elementos de flujo de control.

    • Los eventos que genera SSIS se registran en la tabla definida por SSIS, dbo.sysssislog mediante el procedimiento almacenado dbo.sp_ssis_addlogentry.

  • Cuando finaliza el paquete, se registra un evento de operación realizada correctamente o de error.

  • Cuando se detiene el conjunto de recopilación se registra esta información. Como en el caso de un paquete, se registra un evento de operación correcta o de error.

Los datos generados por el recopilador de datos se almacenan en la tabla dbo.syscollector_execution_log_internal, que está unida a dbo.sysssislog. Esto proporciona una vista completa de la ejecución del conjunto de recopilación. En la sección siguiente se describen estas tablas de forma más detallada.

Tablas de registro

Las tablas de registro y sus columnas se enumeran en la siguiente tabla. En la sección "Obtener acceso y ver los datos del registro", más adelante en este tema, se describen las funciones y vistas que puede usar para obtener información detallada sobre los tipos de datos de una tabla de registro y el contenido.

Nombre de tabla

Descripción

syscollector_execution_log_internal

Una tabla de recopilador de datos para almacenar información de ejecución. Tiene las columnas siguientes:

  • log_id

  • parent_log_id

  • collection_set_id

  • collection_item_id

  • start_time

  • last_iteration_time

  • finish_time

  • runtime_execution_mode

  • status

  • operator

  • package_id

  • package_execution_id

  • failure_message

syscollector_execution_stats_internal

Una tabla de recopilador de datos para almacenar información estadística. Tiene las columnas siguientes:

  • log_id

  • task_name

  • execution_row_count_in

  • execution_row_count_out

  • execution_row_count_errors

  • execution_time_ms

  • log_time

sysssislog

Una tabla definida por SSIS para información de eventos, como el inicio de un paquete o conjunto de recopilación, y advertencias o errores. Para obtener más información, vea sysssislog (Transact-SQL).

Nota importanteImportante

No modifique los datos de las tablas de registro. Los datos de estas tablas deben insertarse, actualizarse y eliminarse de formas específicas determinadas por procedimientos almacenados. Los nombres y las definiciones de las tablas se pueden cambiar en el tiempo de ejecución, cambian al actualizar la aplicación y pueden cambiar en versiones futuras. En lugar de utilizar las tablas directamente, use los procedimientos almacenados y las vistas documentadas que ofrece el recopilador de datos para obtener acceso a los datos de instancia y aplicación.

Retención de registro

Un conjunto de recopilación se conserva durante el mismo tiempo que los datos del almacén de administración de datos se mantienen para el conjunto de recopilación. Esto lo define el período de la retención que puede configurar para cada conjunto de recopilación. Cuando el período de la retención expira, un trabajo del agente SQL Server purga los datos del registro.

Niveles de registro

Se proporcionan tres niveles de registro para administrar los diferentes escenarios de recopilación que pueden darse. De esta forma se asegura de que tiene los datos que necesita para solucionar problemas de un paquete o conjunto de recopilación si es necesario. Puede establecer los niveles de registro para cada conjunto de recopilación de acuerdo con sus requisitos de registro.

En la tabla siguiente se enumeran las opciones de registro disponibles.

Nivel

Descripción

0

Nivel de registro predeterminado. Registra información de ejecución y los siguientes eventos SSIS:

  • Iniciar o detener un conjunto de recopilación

  • Iniciar o detener un paquete

  • Información de error

1

Combina el nivel 0 de registro y los siguientes eventos:

  • Estadísticas de ejecución

  • Progreso de recopilaciones que se ejecutan continuamente

  • Eventos de advertencia de SSIS

2

Combina el nivel 1 de registro y eventos SSIS detallados.

De forma predeterminada, el nivel de registro es 0. El nivel 0 se utiliza para evitar un número excesivo de mensajes de registro, tales como los eventos de advertencia que genera el registro de nivel 1. Estos eventos pueden incluir advertencias de rendimiento de SSIS que no puede corregir el usuario.

El nivel 2 proporciona información de eventos adicional que se puede usar para la solución de problemas avanzada.

Eventos SSIS

Cada paquete del recopilador de datos usa el proveedor de eventos SQL Server. Los eventos que se describen en la siguiente tabla se registran y están disponibles para su visualización.

Nombre del evento

Nivel de registro

Descripción

PackageBegin

0

Un evento estándar que siempre se genera. No se puede deshabilitar este evento.

PackageEnd

0

Un evento estándar que siempre se genera. No se puede deshabilitar este evento.

OnError

0

Evento de error.

OnWarning

1

Evento de advertencia.

PipelineBufferLeak

2

Proporciona información sobre cualquier componente que mantuvo la conexión de los búferes después de la detención del administrador de búferes. Si se mantiene la conexión de un búfer, no se liberan los recursos del búfer y podrían ocasionarse pérdidas de memoria. Esta entrada del registro proporciona el nombre del componente y el Id. del búfer.

PipelineExecutionPlan

2

Informa del plan de ejecución del flujo de datos. El plan de ejecución proporciona información sobre cómo se van a enviar los búferes a los componentes. Esta información, junto con la entrada del registro PipelineExecutionTrees, describe lo que ocurre en una tarea Flujo de datos.

PipelineExecutionTrees

2

Informa sobre los árboles de ejecución del diseño del flujo de datos. El programador del motor de flujo de datos utiliza los árboles para generar el plan de ejecución para el flujo de datos.

PipelineInitialization

2

Proporciona información de inicialización sobre la tarea. Esta información incluye los directorios que se utilizan para el almacenamiento temporal de datos de objetos binarios grandes (BLOB), el tamaño predeterminado del búfer y la cantidad de filas de un búfer. En función de la configuración de la tarea Flujo de datos, es posible que se escriban varias entradas.

ExecuteSQLExecutingQuery

2

Proporciona información sobre las fases de ejecución de la instrucción SQL. Las entradas del registro se escriben cuando la tarea se conecta con la base de datos, cuando la tarea comienza a preparar la instrucción SQL y una vez que se completa la ejecución de la instrucción SQL. La entrada del registro para la fase de preparación incluye la instrucción SQL que utiliza la tarea.

FileSystemOperation

2

Informa sobre la operación que realiza la tarea. La entrada de registro se escribe cuando se inicia la operación del sistema de archivos e incluye información sobre el origen y el destino.

ExecuteProcessExecutingProcess

2

Proporciona información sobre el proceso que se configuró para que ejecute la tarea.

Se escriben dos entradas del registro. Una entrada contiene información sobre el nombre y la ubicación del ejecutable que ejecuta la tarea, y la otra entrada registra la salida del ejecutable.

Obtener acceso y ver los datos del registro

Puede obtener acceso y ver datos mediante programación usando las vistas y las funciones proporcionadas. También puede usar el Visor del archivo de registros en el Explorador de objetos de Management Studio para ver los registros. Para obtener más información, vea Cómo ver registros de conjuntos de recopilación.

La tabla siguiente describe las funciones y vistas que se pueden usar para tener acceso a los datos del registro.

Nombre

Descripción

fn_syscollector_get_execution_details (Transact-SQL)

Devuelve información detallada sobre el conjunto de recopilación y los registros de paquetes los log_id solicitados y todas sus entradas de registro dependientes.

fn_syscollector_get_execution_stats (Transact-SQL)

Devuelve un conjunto de estadísticas para el log_id solicitado. Las estadísticas se calculan a partir de las entradas en la vista syscollector_execution_stats.

syscollector_execution_log (Transact-SQL)

Proporciona una vista de la tabla syscollector_execution_log_internal.

syscollector_execution_log_full (Transact-SQL)

Proporciona una vista detallada de la tabla syscollector_execution_log_internal y muestra las entradas de registro en una jerarquía que empieza en la entrada de registro de recopilación de nivel superior y pasa por todos los paquetes que se ejecutaron como parte de la ejecución de un conjunto de recopilación.

syscollector_execution_stats (Transact-SQL)

Proporciona una vista 1:1 de la tabla syscollector_execution_stats_internal.