首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >数据库分析

数据库分析
EN

Stack Overflow用户
提问于 2013-01-24 21:28:32
回答 2查看 96关注 0票数 1

我应该分析一个具有200+表、100+存储过程和一些视图的旧的现有数据库。

我应该找出当前没有使用的表。访问所有关系,报告过时的关系,找出缺少的关系,未使用的列等

今天我花了5个小时,只能完成7-8个表格,我对如何创建报告感到困惑,我应该使用Visio或excel还是其他什么??

敬请指教!

谢谢,Arshya

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-25 02:02:33

如果您使用的是SQL Server,我建议您使用Red Gate工具。http://www.red-gate.com/

我相信,从SQL Server到Oracle再到MySQL,所有东西都有工具来监视事务、谁连接到数据库以及它们正在运行哪些查询。我会从那里开始。

您还可以运行查询来查看是否有字段只有NULLS,这暗示它们从未被使用过。

要找出使用了哪些列比较困难。如果您有使用数据库的应用程序的源代码,我会在那里尝试编写一个程序来解析所有数据库调用并生成报告。不过,这可能非常困难。

另一个想法(尽管它不是最好的)是制作数据库的副本,并切换您的系统以在开发机器上使用恢复的副本。然后,通过修改数据库副本并记录问题来证明您对未使用的列/表的预感。您是否删除了一个表,应用程序崩溃了?那就很重要了!(我知道这是一件非常痛苦的事情,因为你不能测试所有的东西。)

不幸的是,对于数据库模式,最终暴露的接口很可能是许多应用程序所依赖的。可以说,猫已经从袋子里跑出来了。我认为在做了一些研究之后,回来说最好是让事情保持原样,这是可以接受的。

票数 1
EN

Stack Overflow用户

发布于 2013-02-03 21:19:04

这绝对是一项您无法在短时间内手动完成的任务,您需要使用其他工具。

这里有几个你可能想要做的事情和推荐的工具:

  • 检查哪些数据库对象未被任何其他对象引用,并在初始分析中跳过这些对象。你可能会发现很多这样的东西。Tool - ApexSQL Clean
  • Install一些审计工具并运行几天,看看哪些表/存储过程使用得最多。Tool - ApexSQL Audit
  • Check您的应用程序,并查看其中使用了哪些对象。如果有一些存储过程或表没有被任何应用程序代码引用,您可以将它们标记为适合删除。如果您的代码是.NET only,那么您可以使用grep Clean来实现这一点,但是我建议您使用好的旧grep functions.
  • Once,您已经完成了分析,您可能想要考虑重构一些表或其他对象以满足新的需求。工具- ApexSQL Refactor

一般来说,使用Red-Gate或Idera的工具不会出错,但我更喜欢ApexSQL

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14502486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档