65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 SQL Dependency Tracker 跟踪数据库对象依赖关系并分析架构更改的潜在影响

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2006年6月30日

5分钟阅读

viewsIcon

34906

SQL Dependency Tracker 允许您以图形方式可视化数据库对象依赖关系。这意味着用户可以在推送数据库更改之前跟踪潜在的“附带损害”。使用这个巧妙易用的工具,您还可以记录数据库依赖关系。

引言

SQL Server 正在被越来越多的用户所采用。升级到 SQL Server 2005 带来了更多功能和可扩展性,这使得越来越多的公司在整个组织中推广数据库平台。

数据库部署规模扩大的一个典型结果是,越来越多的人会操作数据库。增加人为操作也会增加人为错误,因此扩大安装规模通常会带来计划外(且非预期)的依赖影响、崩溃以及随之而来的停机时间的可能性。

Software Development Times(2006 年 3 月)的一项最新调查显示,在超过半数的变更管理流程中,分析对象依赖关系和架构更改的潜在影响的任务是手动进行的,而且是临时进行的。超过 20% 的受访者表示,他们依赖于编写数据库的人员的个人记忆。

那么,有哪些系统和工具可以提供清晰度、信心和保障,以应对人员变动或组织结构调整的影响?Red Gate Software(SQL Compare 等工具的制造商)的 SQL Dependency Tracker 使任何人都能查看和理解数据库及其依赖关系的清晰图谱,涵盖链接数据库甚至其他服务器。

通过使用专有引擎(完全独立于 sysdepends 表)并提供可重新配置的布局,任何数据库开发和管理团队成员都可以轻松生成并保存图形报告,显示给定数据库中的所有对象、每个对象中存在的列名以及这些对象之间的依赖关系。

这对于一系列不同的数据库任务非常有用,包括

  • 记录数据库版本历史
  • 分析即将进行的架构更改
  • 从初始目标对象映射依赖关系树
  • 向其他团队成员或组织上级报告

选择目标对象

使用 SQL Dependency Tracker 设置依赖关系图非常简单。它会以“空图”屏幕打开,并邀请您使用 添加对象 向导将对象添加到项目中。

对话框显示所有本地可用的 SQL Server 以及每个服务器中存在的数据库。选择一个数据库后,下方窗口会显示其组成对象。

假设您是一名开发 DBA,需要向某个表添加一个列,以便存储信用卡验证号码。这些号码需要与信用卡号码以及客户姓名一起存储。因此,向一个表添加此列将需要更改依赖的表,而且不一定在同一个数据库中。

在本例中,我们将从一个名为 Northcards 的数据库中选择一个表——CustomerCards 表——该表存储客户信用卡详细信息。

点击 将选定项添加到项目 按钮将启动布局引擎,您选择的对象将与任何连接的对象一起被映射。在下面的快照中,我们可以看到 CustomerCards 对象已添加到布局中,并且其依赖对象围绕它分组。另一个数据库中的外部引用对象(此处用绿色箭头表示)也已添加。Northwind 数据库中的 Customers 表已被添加,因为它被两个存储过程——sp_getnamesforcardsp_createcustomercard——使用,而这两个存储过程也使用了我们最初的 CustomerCards 表。

通过右键单击此外部引用,我们可以添加被它使用的对象。对象左侧的“天线”表示存在此类对象,将鼠标悬停在该对象上会显示包含这些对象名称的工具提示。

跟踪依赖关系

让我们将依赖对象添加到我们的图中。点击 重新应用布局 将会完成此操作,生成一个更易于阅读的网格。随着对象数量的增加,为了方便理解对象之间的关系,能够从五种可用布局中选择不同类型的布局会很有用。例如,分层布局尤其有用,因为它将不同级别的依赖关系放置在图的不同级别,如下图所示。

当您选择一个对象并右键单击它时,还有一个选项可以 显示该对象的 SQL 脚本

快速检查 SQL 脚本将告诉您,由于您计划向 CustomerCards 表添加新列,因此可能需要在哪些对象中调整哪些参数。

当您认为已识别出更改架构将导致的所有影响后,您可以保存数据库及其依赖关系的状态记录, exactly as they are at the time of the change。只需点击工具栏中的 复制 按钮,当前的网格图就会被复制到剪贴板,您可以将其粘贴到任何需要保存的位置,例如电子表格或 MS Word 中。您还可以将图导出为 PNG 图像或 XML 文件。

并行文本跟踪

回到 SQL Dependency Tracker,屏幕的右侧是两个关键的窗格。右上角是 项目中的对象 窗格,列出了当前添加到项目中的所有对象。点击一个对象——例如,下图中的 Orders Qry 视图——将用 使用被使用 该对象的对象填充右下角的 依赖关系 窗格。当不需要图形显示时,这是一种快速简单的跟踪对象的方法。您还可以通过选择和突出显示某些对象(例如,存储过程或视图),根据您喜欢的颜色编码方案,使图表一目了然。

现在您已经识别了任何依赖问题,您可以使用 Red Gate SQL CompareSQL Data Compare 来比较和同步您的数据库,完全放心地不会出现隐藏的依赖关系意外并导致问题。

© . All rights reserved.