我应该分析一个具有200+表、100+存储过程和一些视图的旧的现有数据库。
我应该找出当前没有使用的表。访问所有关系,报告过时的关系,找出缺少的关系,未使用的列等
今天我花了5个小时,只能完成7-8个表格,我对如何创建报告感到困惑,我应该使用Visio或excel还是其他什么??
敬请指教!
谢谢,Arshya
发布于 2013-01-25 02:02:33
如果您使用的是SQL Server,我建议您使用Red Gate工具。http://www.red-gate.com/
我相信,从SQL Server到Oracle再到MySQL,所有东西都有工具来监视事务、谁连接到数据库以及它们正在运行哪些查询。我会从那里开始。
您还可以运行查询来查看是否有字段只有NULLS,这暗示它们从未被使用过。
要找出使用了哪些列比较困难。如果您有使用数据库的应用程序的源代码,我会在那里尝试编写一个程序来解析所有数据库调用并生成报告。不过,这可能非常困难。
另一个想法(尽管它不是最好的)是制作数据库的副本,并切换您的系统以在开发机器上使用恢复的副本。然后,通过修改数据库副本并记录问题来证明您对未使用的列/表的预感。您是否删除了一个表,应用程序崩溃了?那就很重要了!(我知道这是一件非常痛苦的事情,因为你不能测试所有的东西。)
不幸的是,对于数据库模式,最终暴露的接口很可能是许多应用程序所依赖的。可以说,猫已经从袋子里跑出来了。我认为在做了一些研究之后,回来说最好是让事情保持原样,这是可以接受的。
发布于 2013-02-03 21:19:04
这绝对是一项您无法在短时间内手动完成的任务,您需要使用其他工具。
这里有几个你可能想要做的事情和推荐的工具:
一般来说,使用Red-Gate或Idera的工具不会出错,但我更喜欢ApexSQL
https://stackoverflow.com/questions/14502486
复制相似问题