2

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

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

2 回答 2

3

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

SSIS 日志记录

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

事件处理程序

事件处理程序路由为记录的信息提供了更大的灵活性。事实上,如果您有需要,您可以在事件处理程序中拥有完整的工作流程(我强烈建议不要使用这种方法)和事件处理程序。使用事件处理程序记录内容的缺点是您需要在任何地方进行设置。复制和粘贴在 2012 年变得不那么不稳定了,但是对您的日志记录的任何更改都必须在您的所有包中永久存在。

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

我们还连接了一个 OnTaskFailed 事件,以向待命寻呼机发送电子邮件,详细说明有关失败的信息。当我们每天运行 3 个包时,这很好用。当我们要运行数百个包时...... Ick。

于 2012-12-05T14:18:08.470 回答
1

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

而 SSIS 日志记录只是顾名思义。

于 2012-12-05T15:57:13.397 回答