阿里云
发表主题 回复主题
  • 515阅读
  • 1回复

[转载]Oracle中如何侦测不平衡的索引

级别: 小白
发帖
0
云币
-27
http://www.look4bug.com/Items/xtzq/items/data/200-299/282.html


Oracle中如何侦测不平衡的索引

一个不平衡的索引由于它们近视的索引直使得许多的记录成块地聚集在一起.当索引不平衡时,部分索引较

其它索引更常被存取,这可能发生磁盘竞争,利用ANALYZE INDEX INDEX_NAME COMPUTE|ESTIMATE STATISTICS

可在索引上收集统计资料.统计出现的USER_INDEXES,ALL_INDEXES和DBA_INDEXES资料字典视图中。此外,附加

的统计可用VALIDATE INDEX INDEX_NAME叙述来放至INDEX_STATS视图中。


1.执行SQL *PLUS 建立表MES0008,索引MES0008_INDEX.


2.MES0008_INDEX收集统计资料,对于大的索引(表超过10丌条记录)使用ESTIMATE 取代COMPUTE以加速反应时




SQL>ANALYZE INDEX &owner..&index_name

COMPUTE STATISTICS

SQL>/

Enter value for owner:MES

Enter value for index_name:MES0008_INDEX

Index Analyzed.

SQL>


3.此时,统计资料将显示索引是良好平衡,因为没有记录,你可以查询DBA_INDEXSES数据字典确定统计资料。


SQL>SELECT BLEVEL,DECODE(BLEVEL,0,'OK BLEVEL',

1,'OK BLEVEL',

2,'OK BLEVEL',

3,'OK BLEVEL',

4,'OK BLEVEL','LEVEL IS TOO HIGH') OK

FROM DBA_INDEXES

WHERE INDEX_NAME='&index_name' AND

OWNER='&owner'

SQL>/

Enter name for index_name:MES0008_INDEX

Enter name from owner: MES

HEIGHT OK

0 OK BLEVEL

1 row selected.

可以看到BLEVEL 0 为OK,BLEVEL是B-TRIEVE索引格式的一部分与时间有关的数值,当找一条特定的记录时,

ORACLE必须限制在索引上的收索,对每一个BLEVEL都需要一次各自的存取.如果BLEVEL大于4时,建议重建索引.


4.只有BLEVEL被审查.要更进一步决定索引是否平衡,就进一步收集资料.


SQL>VALIDATE INDEX &owner..&index_name

SQL>/

Enter value for owner:MES

Enter value for index_name:MES0008_INDEX

Index analyzed.

SQL>


5.此时,INDEX_STATS视图会有目前的MES0008_INDEX索引的统计资料。以下例子是删除业记录是的查询讯息和

总记录比较。


SQL>SELECT DEL_LF_ROWS*100/DECODE((DEL_LF_ROWS+LF_ROWS),0,1,

DEL_LF_ROWS+LF_ROWS)) PCT_DELETED,

(LF_ROWS-DISTINCT_KEYS)*100/DECODE(LF_ROWS,0,1,LF_ROWS) DISTINCTIVENESS

FROM INDEX_STATS

WHERE NAME='&index_name'

Enter values for index_name:MES0008_INDEX

PCT DELETED DISTINCTIVENESS

----------------------------------------

0 0

SQL>

PCT_DELETED字段显示叶记录已经被删除和保持未满的百分比.在一个索引上越多的删除项目会使索引变得越

不平衡。如果PCT_DELETED为20%或更高,该索引就成为重建索引的后选择.你可以用估计(ESITIMATING)或计算

(COMPUTING)统计的方式来收集表格上的索引统计资料.当你登出资料库,所有资料将从INDEX_STATS视图中移出。

---- OraParameter 绑定在SQL语句或PL/SQL块中的有关变



Oracle, 如何, 平衡, 索引, 记录






关键词: 移动侦测
级别: *
发帖
*
云币
*


下载回来!
发表主题 回复主题
« 返回列表
«12345678910»
共10页
上一主题下一主题

限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
验证问题: 34 - 23 = ?
上一个 下一个
      ×
      全新阿里云开发者社区, 去探索开发者的新世界吧!
      一站式的体验,更多的精彩!
      通过下面领域大门,一起探索新的技术世界吧~ (点击图标进入)

      版权声明

      开发者论坛为你提供“[转载]Oracle中如何侦测不平衡的索引”的内容,论坛中还有更多关于 移动侦测 的内容供你使用,该内容是网友上传,与开发者论坛无关,如果需要删除请联系zixun-group@service.aliyun.com,工作人员会在5个工作日内回复您。