如何使用Oracle 10g来获取表访问指标?

时间:2010-02-18 13:40:34

标签: oracle testing monitoring legacy instrumentation

我们有遗留/生产数据库。它一直在不断发展和使用,支持一个已经发展了10多年的网站。数据库由多种技术访问 - perl cgi,php和java webapps。

积累了很多琐事。我希望进行一次重大的重构。我确信有些部分是完全遗留的(显而易见的是零行的表)。要确定哪些部分使用最多,我首选的策略是检测数据库,而不是通过大量潜在的访问组件。

oracle(10g)是否有能力在每个表上设置触发器以报告访问的时间和频率?有人能指出我如何做到这一点或其他一些机制来达到同样的目标?

(请评论其他策略的建议,以帮助在此参议院重构数据库)。

2 个答案:

答案 0 :(得分:5)

如果您只想知道访问哪些表(或者即使您需要更多详细信息),那么最简单的方法是使用Oracle的内置AUDIT功能。 Find out more

请记住,某些数据库对象可能只能按季度使用,甚至每年使用一次。所以你真的需要一套体面的文档或一套100%覆盖率的回归测试。当然,如果你有其中任何一个,你可能不会在这里问你的问题:)

答案 1 :(得分:1)

如果您使用的是10g,并且已为表启用了TABLE MONITORING,则可以轻松访问DBA_ALL_TAB_MODIFICATIONS。

它包含有关对表的修改的信息,包括自上次分析以来对表的大致插入,更新和删除的数量。

有关启用表格监控的信息和用于计算百分比变化的查询,请访问:link