我的目的是分析模式的索引以获得最佳的基本索引压缩应用。
我将使用命令
ANALYZE INDEX OWNER.INDEX_NAME VALIDATE STRUCTURE;
这将用我需要的信息填充SYS.INDEX_STATS
视图,但考虑到此视图没有OWNER
列,这对我没有帮助。原因如下:
在我的 Oracle 实例中,我有许多模式,其中包含相同产品的安装,其中填充了来自不同客户的数据。
我正在INDEX_STATS
通过循环DBA_INDEXES
和调用来填充ANALYZE INDEX
,因此任何调用都ANALYZE INDEX OWNER.INDEX_NAME VALIDATE STRUCTURE
将覆盖来自不同架构上相同索引上的上一次调用的条目。
我可能会在分析完每个模式后保存 的内容INDEX_STATS
,但由于软件的模块化,并非所有客户都安装了相同的表,因此某些条目INDEX_STATS
可能会引用之前对不同模式的调用。
有没有办法清除内容,INDEX_STATS
以便在分析每个模式之前有一个干净的情况?或者唯一的解决方案是加入INDEX_STATS
以DBA_INDEXES
将 的内容保存INDEX_STATS
到包含所有模式的数据的最终表中?
的内容
INDEX_STATS
是临时的。每次启动新会话时,视图都会变为空。此外,此视图仅包含分析的最后一个索引的数据。因此无需清除内容,只需正确组织代码并将结果存储在永久表中(如果需要)。