我们有遗留/生产数据库。它一直在不断发展和使用,支持一个已经发展了10多年的网站。数据库由多种技术访问 - perl cgi,php和java webapps。
积累了很多琐事。我希望进行一次重大的重构。我确信有些部分是完全遗留的(显而易见的是零行的表)。要确定哪些部分使用最多,我首选的策略是检测数据库,而不是通过大量潜在的访问组件。
oracle(10g)是否有能力在每个表上设置触发器以报告访问的时间和频率?有人能指出我如何做到这一点或其他一些机制来达到同样的目标?
(请评论其他策略的建议,以帮助在此参议院重构数据库)。
答案 0 :(得分:5)
如果您只想知道访问哪些表(或者即使您需要更多详细信息),那么最简单的方法是使用Oracle的内置AUDIT功能。 Find out more
请记住,某些数据库对象可能只能按季度使用,甚至每年使用一次。所以你真的需要一套体面的文档或一套100%覆盖率的回归测试。当然,如果你有其中任何一个,你可能不会在这里问你的问题:)
答案 1 :(得分:1)
如果您使用的是10g,并且已为表启用了TABLE MONITORING,则可以轻松访问DBA_ALL_TAB_MODIFICATIONS。
它包含有关对表的修改的信息,包括自上次分析以来对表的大致插入,更新和删除的数量。
有关启用表格监控的信息和用于计算百分比变化的查询,请访问:link