在SQL Server中调试SSIS包(二)


使用断点还是有局限性的。如果“错误逻辑(error logic)”调用了多次,你就可以设置启用它们;或者你可以在你只能看见在出现问题的地方有什么包时你也可以对它们进行设置。从Integration Services里对包进行编辑并运行之后,断点就不存在了。所以在启用产品包时我们不要担心对它造成的影响。

  调试SSIS包的数据阅读器(data viewer)
 
  所以你现在可以在控制流上设置断点。但是如果你要解决数据流内部的故障问题该怎么办呢?这时数据阅读器就派得上用场了。数据阅读器(有四种选择)可以在任意数据流任务上进行配置。通过点击右键(任务之间的一个箭头)选择数据阅读器,你就可以看见Data Flow Path Editor的数据阅读器部分。然后点“Add”、选择查看Grid、Histogram、Scatter Plot或 Column图表。在图3中,你可以看到在conditional split的输出结果"Child Rows"上配置的Grid Data Viewer。

  

  图3:在conditional split的输出结果"Child Rows"上配置的Grid Data Viewer

  你选择的这种数据阅读很大程度上取决于你查看的数据类型和你所要知道的东西。我只想知道conditional split任务执行之后的数据。你运行包的时候,它就在数据阅读器这个地方暂停,显示你选择的数据格式。图4表示我运行包时的Grid Data Viewer。

  

  图4:在包执行过程中的Grid Data Viewer

  现在我可以检查数据,保证它们能够正常运行;或者我还可以查找有害数据,这些数据可能造成其他的问题。为了让这些包再次运行,我可以点击"Play"按钮或点击"Detach."。如果我选择"Play",SSIS包就会继续运行。下次运行同样的任务时,例如在进行loop操作时,我可以给目前的数据获取另一个数据阅读器。如果我选择"Detach",SSIS包就会在不触及数据阅读器的情况下继续运行。所以如果同一个任务再次在loop中运行的时候,我就不会获取新数据阅读器。

  SSIS提供了几种新的调试方法。其中两种最简单的方法就是用断点和数据阅读器。这两种方法都展现了SSIS包内部运转的一些信息。数据阅读器和断点只是去掉了SSIS包里调试选项表面的东西。通过简短的归纳,你可能对SSIS包内在的东西有了充分的理解,甚至还可以解决一些在包里可能遇到的问题。


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3