yoe*_*sef 1 sql-server logging ssis etl ssis-2012
昨晚我的 SSIS 挂了。我不太确定为什么。今天早上,我根据输出确定了哪个包挂起。我正在查看sp_who2
,但看不到在运行作业的用户下运行的任何进程。
我想知道当我的 SSIS 挂起时我应该做什么。它当前仍在运行,但似乎没有运行任何东西。
首先将包部署到 SSISDB 并从那里运行它。如果您尚未安装 SSISDB 目录,可以在此处找到更多相关信息。此后,启用包中的日志记录并查看结果,特别是包挂起的阶段。执行此操作时,查找PipelineComponentTime
指定每个组件在特定阶段花费多长时间的事件。可能感兴趣的几个阶段是ProcessInput
处理传入记录的阶段,以及PrimeOutput
将数据放入缓冲区并沿着数据流进一步发送的阶段。启用日志记录的概述如下。
Logging...
SYSSSISLOG
则会在所使用的 OLE DB 连接管理器中设置为初始目录的数据库中创建表。在“详细信息”窗格中,选择您要记录的事件。选择这些后,单击Advanced>>
按钮设置将记录的字段。PipelineComponentTime
前面提到的事件将在这些任务的“详细信息”窗口下可用。catalog.event_messages
、executable_statistics
、 和catalog.operation_messages
是一些会有所帮助的内容。为了更深入地了解组件以及延迟发生的位置,我建议使用catalog.execution_component_phases
,这将需要 Performance 或 Verbose 的日志记录级别。execution_id
较慢执行的实例来查询 DMV catalog.execution_parameter_values
,以查看这些执行中参数的设置。