2010-12-14 66 views
6

我希望能够绘制一个存储过程的调用图。我对每一个细节都不感兴趣,而且我不关心动态SQL(尽管检测它并跳过它可能会很酷,或者将它标记为这样)。是否有免费的工具可以帮助可视化SQL Server 2008 R2中的存储过程的逻辑?

我希望该工具能够生成树给我的服务器名称,数据库名称,存储过程名称,“呼叫树”,其中包括:

  • 父存储过程。
  • 被调用为调用方子进程的每个其他存储过程。
  • 每个正在修改(更新或删除)的表作为存储过程的子进程。

希望我很清楚自己在做什么;如果没有 - 请问。如果没有可以做到的工具,那么我想自己写一个。 Python 2.6是我的选择语言,我希望尽可能使用标准库。有什么建议么?

编辑:为了赏金的目的警告:SQL语法是COMPLEX。我需要一些可以解析各种SQL 2008的东西,即使它看起来很愚蠢。没有角落案例禁止:)

编辑2:如果我所缺少的是图形,我会好的。

回答

7

**我刚刚意识到你可能正在寻找一个可以为你做这个的Python库。如果是这样,我为这个哑巴答案抱歉哈哈,但是如果你试图想象一个数据库,所以你可以执行维护,那么我的答案是一样的:) **

这不是免费的,但我向你保证SQL来自RedGate的依赖追踪器非常值得。它产生像你描述,让你看到所有的参与者在每一道工序,关键,视图,触发器等真棒软件的图形: http://www.red-gate.com/products/sql-development/sql-dependency-tracker/

我知道你说的自由,但我是在同和几年前一样,并且看起来相当有点可以完成这项工作的东西,不管有没有。直到我找到这个软件,没有其他人可以做我所需要的。如果您需要定期执行此类操作,我强烈建议您为此工具找到资金。

+0

它需要多少钱?他们有试用期吗? – 2010-12-22 15:15:55

+0

〜$ 300。 14天免费试用。我还没有找到一个能够做到这一点的其他工具。我发现一些可以通过遵循表之间的关系来生成图表,但那是他们停止的地方。没有其他工具会真正从视图/存储过程/函数中读取代码来构建依赖关系图,这正是我所需要的,因为我正在考虑删除已经开始混乱我的数据库的重复视图,SP等。这一款适用于服务器上几乎所有类型的对象。 – 2010-12-24 19:50:17

+0

我看到你仍然在寻找这个问题的答案。显然,依赖追踪器可以导出为XML。虽然我不能确定xml是什么样子,但另一个用户似乎找到了获得独特依赖关系的解决方案:http://www.red-gate.com/messageboard/viewtopic.php?p=25396 #25396他们的支持还提到出口PDF格式的依赖列表用于报告目的:http://www.red-gate.com/supportcenter/Content?p=SQL%20Dependency%20Tracker&c=SQL_Dependency_Tracker/help/2.4/SDT_ExportingDependencyList.htm&toc = SQL_Dependency_Tracker/help/2.4/toc279529.htm – 2010-12-27 01:16:36

0

您可以使用SQL Server Management Studio显示实际或估计的查询计划。它提供了一个可以遵循的图形输出。这里有一个小底漆:http://www.mssqltips.com/tip.asp?tip=1873

更新:

您可以使用SQL Server集成服务(SSIS)以图形的方式来创建数据的提取物。您还可以使用Microsoft Biztalk Server创建复杂的图形布局,以提取数据。最后,您可以使用Microsoft的WF以图形化方式创建自动化流程,该流程可以执行与Biztalk类似的功能。唉,这些都不是免费的:(如果你有一个MSDN订阅他们:)

BizTalk映射: http://geekswithblogs.net/images/geekswithblogs_net/Chilberto/WindowsLiveWriter/BizTalkMapComparisonbetweenTableLoopinga_B5B9/image_6.png

+0

谢谢,这看起来像一个开始。这个问题有一个赏金,所以我想问 - 如何使用某种脚本从查询执行计划中自动提取我需要的数据?有没有办法自动运行查询执行计划? – 2010-12-26 17:39:21

+0

嗯,查询执行计划并非真正被设计成数据提取工具,它实际上用于向您显示SQL服务器运行查询时采取的步骤。您可以保存执行计划(右键单击菜单)。 http://msdn.microsoft.com/en-us/library/ms190646.aspx – 2010-12-26 23:38:44

0

SQL谈判代表Pro拥有在www.aphilen.com免费的精简版的版本 全版本是唯一可以找到所有依赖关系并且在查找到前10个子依赖关系后不会停止的产品。其他产品在有循环引用时就会失败,只是挂起来,这些人已经把它覆盖了。另外一个很好的特点是可以向图表添加注释以便可以轻松分发。 完整版本并不便宜,但为我们节省了大量的时间,通常需要确定复杂的数据库过程。顶点也提供了一个整洁的工具

相关问题