查找未使用的列

时间:2010-08-30 11:04:09

标签: sql sql-server-2005

我正在使用一个遗留数据库,由于管理和设计不佳,这些数据库的数据量已经大幅下降,而这些数据库从未使用或不再使用过。

是否有可能对列的使用情况进行查询?如选择列的频率(具体或与*,或连接)?

在我看来,这是我们应该以某种方式检索的东西,但我一直无法找到这样的东西。

问候,

F.B。十凯特

3 个答案:

答案 0 :(得分:3)

不幸的是,DB方面的这种分析并不是一个完整的答案。我见过很多实例,其中应用程序代码只需要10列列表中的3列,但无论如何都要选择它们。

您的专栏仍会显示在您使用的任何类型的跟踪或分析中的使用情况报告,但它仍然可能无法正在使用。

您可能需要a)分析使用此网站的整个应用程序集合,或b)开始起草关于是否值得重建的投资回报风格文档。

答案 1 :(得分:0)

This article会让您了解如何搜索 使用的列的所有固定代码(标准,视图,函数和触发器)。本文中的代码搜索特定的表/列组合。您可以轻松地调整它以运行所有列。对于任何动态执行的内容,您可能需要设置profiler trace

答案 2 :(得分:0)

即使你可以确定在过去的X时间段内是否使用了一列,这还不够好吗?可能会有一些模糊的程序,每周,一个月,一年填充一列;或者每次他们点击没有人点击过的神秘按钮,或者记录只有Fred会计运行的报告(他在两年前退出),或者如果那个罕见的错误发生就会被记录(在夏令时期间)时间,也许?)

我的观点是,唯一可以确定列绝对不被任何东西使用的方法是审查所有内容 - 每个调用,每行代码,每个临时Excel数据转储,每个可能的意外事件 - 引用数据库的一切。由于这可能几乎无法实现,尝试获得一个正式定义的必须支持的程序和程序组,向后弯曲以确保它们得到支持,并准备好在一些被忽视时解决问题或遗忘的功能出现了。