【问题标题】:Purging SQL Tables from large DB?从大型数据库中清除 SQL 表?
【发布时间】:2010-12-11 09:34:13
【问题描述】:

我作为学生工作的网站将在不久的将来重新设计和发布,我被分配了手动搜索数据库中的每个表的任务,该网站用于查找我们可以考虑删除的表。我正在搜索 Dreamweaver 中的每个 HTML 文件源代码,但我希望有一种自动化的方式来检查我的工作。有人对在商业世界中如何做到这一点有任何建议吗?

【问题讨论】:

    标签: sql optimization performance database


    【解决方案1】:

    如果您搜索代码,您可能会发现从未使用过的 SQL,因为用户从未在应用程序中选择这些选项。

    相反,我建议您打开对数据库的审核并记录实际使用的 SQL。例如in Oracle you would do it like this。其他主要的数据库服务器也有类似的功能。

    从日志数据中,您不仅可以确定正在使用哪些表,还可以确定它们的使用频率。如果架构中有任何表在一周的审核期间没有出现,或者很少出现,那么您可以使用文本搜索工具在代码中进行调查。

    一旦您从数据库中删除候选表并获得经理的批准,那么不要只是删除表,将它们重新创建为空表,或者在表中放置一个大部分为空值的虚拟记录 (或零或空白)在字段中,除了名称和描述性字段,您可以在其中放置诸如“DELETED”“向支持中心报告错误DELE”等内容。这样,应用程序不会因硬错误而失败,并且当用户最终使用这些未使用的表时,您有机会了解他们在做什么。

    【讨论】:

    • 同样,这只会为您提供自您开始观看以来使用过的内容。更好地评估整个应用程序并确定在改造中将做什么。
    【解决方案2】:

    对数据库(Visio、Toad 等)进行逆向工程、记录结构并询问新网站的设计人员他们需要什么——然后重构。

    【讨论】:

    • 谢谢。我不能投票给你,因为我“没有足够的声誉”,但这就是我一直在寻找的方法。我是一个初级程序员,我还在熟悉事情的过程。
    【解决方案3】:

    我会先梳理一下关键字的 HTML 源代码:

    • 选择
    • 插入
    • 更新
    • 删除

    ...使用 grep/等。这些都不是 HTML 实体,并且您不能可靠地使用表名,因为您可能正在处理视图(假设系统中存在任何视图)。然后,您必须将语句本身倾倒以确定正在使用的内容。

    如果系统中使用了 [希望] 函数和/或存储过程,则大多数 DB 都具有检查依赖项的参考功能。

    现在是逐屏创建设计文档的好时机,列出屏幕上的属性以及值在 table.column 级别的数据库中的来源。

    编译您使用的表列表,并与数据库中的实际数据进行比较。

    【讨论】:

      【解决方案4】:

      如果在 HTML 源代码中指定了表名(如果这是唯一指定它们的地方!),您可以在文件中搜索数据库中每个表的名称。如果有很多表,请考虑使用 grep 之类的工具,并为每个表名创建一个针对源代码库(HTML 文件以及可以通过名称引用表的任何其他文件)运行 grep 的脚本。

      话虽如此,我还是会听从 Damir 的建议,将删除候选者的列表提交给数据设计人员进行验证。

      【讨论】:

        【解决方案5】:

        我猜您没有围绕数据访问或 UI 进行任何测试,因此无法验证使用和未使用的内容。如果数据访问是一致的,脚本将是您最好的选择。让它搜索正在调用的表/视图/存储过程并将它们转储到文件中以进一步分析。这至少会给你一个从某个地方实际调用的所有内容的列表。至于这些页面是否真的在任何地方使用,那就是另一回事了。

        获得被调用的数据库元素列表后,将其与数据库中的用户定义元素列表进行比较。这将为您提供可能被删除的内容。

        话虽如此,如果网站正在重新设计,那么新的数据库架构实际上可能是更好的方法。与查找死表和字段相比,重新开始和导入旧数据的工作量通常较小。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-10-07
          • 2021-03-16
          • 2013-07-29
          • 1970-01-01
          • 2015-09-08
          • 2019-07-17
          • 2015-06-24
          相关资源
          最近更新 更多