1

我正在尝试收集大型 Oracle 数据库的使用统计信息。我知道查看 DBA_TAB_MODIFICATIONS 视图以查看 INSERT、UPDATE 和 DELETE 统计信息。但是只选择语句呢?我试图找到从未使用过的表。

SYS.DBA_HIST_SQLTEXT 有一个 SQL_TEXT 字段,用于存储在特定时间段内运行的单个查询,其中 SQL_ID 是 PK。我曾考虑过解析它以挑选表名,但这似乎太乏味了。我正在寻找另一种选择。

有任何想法吗?

4

1 回答 1

3

假设您使用的是相当新的 Oracle 版本(我相信 9.2 或更高版本),您可以查看V$SEGMENT_STATISTICS。这会逐段向您显示许多不同的性能计数器。如果您只看statistic_name='logical reads',这将使您对阅读很少的表格有一个很好的了解。当然,即使应用程序从不使用表,也完全有可能会记录一些读取记录,例如备份或递归 SQL(即验证外键)。完全有可能一个表的段很少被读取,但该表上的索引却被频繁读取(即,该索引足以满足应用程序对表数据所需的大多数访问类型)。

于 2012-06-05T18:07:44.563 回答