跟踪存储过程/ SSIS / SSRS中的SQL依赖关系

时间:2010-06-21 12:59:04

标签: sql reporting-services ssis

我们有一个在T-SQL,SSIS和SSRS中开发的环境。我们有自己系统的核心数据库,但我们依赖于另一个SQL系统,我们通过调用表,视图和存储过程直接从中提取数据(不理想,但那是另一天)。

作为开发人员,我想确保在任何时候我都能识别出我在辅助数据库上的所有依赖关系。这有望使我能够确定升级期间的关注领域,并允许与辅助团队进行更好的沟通,以确保尽早发现我们系统所需的任何潜在变更。

是否有人知道将智能识别其中使用的所有数据库对象的任何工具/方法:

  • SSIS包
  • SSRS报告
  • 通过存储过程中的链接服务器调用对象等

我目前的替代方案是手动跟踪我们使用的所有对象 - 但我更喜欢某种自动化方法来消除过程中的人为错误。我们目前正在为源代码控制转向TFS环境,因此任何插件都将是一个很大的好处!

由于

3 个答案:

答案 0 :(得分:2)

数据字典中有可用的系统元数据,可以跟踪数据库工件的依赖性,直到列级别。您可以查看特定存储过程所依赖的表和列。

但是,对于数据库外部的对象(如报表或SSIS包),数据库不会跟踪此信息,因此数据字典中没有任何内容可以帮助您。

你想要的是起源报告,这是ETL工具界的一个圣杯。理论上的天堂是有一个工具,允许您设置ETL处理或报告(最好不必编写任何SQL代码),然后生成一个按钮报告,跟踪输出回到它们的原点。

可悲的是,SSRS或SSIS都无法做到这一点。您可以以编程方式遍历SSIS数据流元数据,因此可以在理论上做到这一点(可以通过算法将这种依赖关系的图形折叠到最小形式),但对SQL执行此操作要困难得多。我不知道任何现成的工具做得不错。

答案 1 :(得分:2)

克里斯,我实际上又看了一眼,我发现了SSIS,SSRS和SSAS世界的一个很好的关键。 SQL MetaData ToolKit(http://sqlmetadata.codeplex.com/releases/view/47356)将为您切片和切块对象并将它们放入表中。如果你一直在寻找,你可能会看到它,并认为它看起来很傻。它确实如此,但是当我安装了最新版本时,我记得数据库在它后面,所以我入侵了它。很容易遵循。然后你可以从系统表中获取数据库中的东西。 sysdependencies有它不同步的问题所以我所做的是编写数据库脚本并在新的虚拟服务器上重新创建它们。我希望这有帮助。我会做同样的事情。

答案 2 :(得分:0)

http://www.red-gate.com/products/sql_dependency_tracker/index.htm

不太确定如何将SSRS / SSIS链接到此。

不敢相信红门没有这样做,认为他们错过了一招。