在SSIS中使用日志记录和事件处理程序之间的区别是什么?

时间:2012-12-05 13:20:39

标签: ssis

如果我想在SISS包装中发生某些事件时保存信息/日志,哪种方式更好?

  1. 使用SSIS日志记录 - 将提供程序类型设置为SQL Server,并选择要存储在SQL Server中的事件。
  2. 使用包/任务上的事件处理程序,并使用execute sql任务将信息保存到SQL Server中的表。

2 个答案:

答案 0 :(得分:3)

更好是主观的。只有了解您的要求才能确定一个是否优于另一个。

SSIS记录

这是一种简单易用的跟踪包进度的机制。该表已存在于SQL Server中,如果您正在登录除msdb之外的其他内容,则会将其复制到目标目录中(是的请)。如果它为您关注的事件记录的信息符合您的要求,那么这是一个明智的选择。

事件处理程序

事件处理程序路由为记录的信息提供了更大的灵活性。事实上,如果您有需求,您可以在事件处理程序中使用事件处理程序(我强烈建议使用反对该方法)完成一个完整的工作流程。使用事件处理程序记录内容的缺点是你需要在任何地方进行设置。复制&粘贴在2012年不那么脆弱,但是对于您的日志记录的任何更改都必须在所有包中保持不变。

在最长的时间内,我们使用“两种”方法来记录包裹信息。我们的Logging转到SQL Server,我们记录了OnError,OnTaskFailed,OnWarning,OnInformation,OnPreExecute,OnPostExecute。这为我们提供了比我们通常需要的更多的信息,但它很容易访问,所以我们保留了它。

我们还有一个OnTaskFailed事件,它可以将电子邮件发送到呼叫寻呼机,详细说明故障信息。当我们每天运行3个包时,这很好用。当我们到达运行数百个包时...... Ick。

答案 1 :(得分:1)

事件处理程序应该用于处理该事件,即不仅仅是记录信息。换句话说,它们提供了更多日志记录功能。

SSIS日志记录只是按照顾名思义进行。