ITPUB??ì3
报名申请微软有影响力专家
ITPUB论坛 » Oracle开发 » [转载]Oracle中如何侦测不平衡的索引

标题: [转载]Oracle中如何侦测不平衡的索引
离线 jlandzpa
版主


精华贴数 31
个人空间 0
技术积分 47223 (14)
社区积分 56360 (8)
注册日期 2001-10-12
论坛徽章:29
现任管理团队成员ITPUB元老指数菠菜2008纪念章授权会员生肖徽章2007版:猴2009新春纪念徽章
ITPUB新首页上线纪念徽章     

发表于 2001-12-4 22:33 
[转载]Oracle中如何侦测不平衡的索引

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块中的有关变



__________________
my blog: http://blog.itpub.net/jlandzpa
mail: “id”@itpub.net

注意: [投资理财版] 业已提供上证指数菠菜,欢迎参与 :)

[头像]  jiang zu ping
只看该作者    顶部
离线 cactus
无药可救



精华贴数 0
个人空间 0
技术积分 758 (2602)
社区积分 1 (33973)
注册日期 2001-11-5
论坛徽章:1
授权会员     
      

发表于 2001-12-4 22:49 
这是各好东东

下载回来!


__________________
本人优点:多情!本人缺点:自作多情!E_mail:cactus@itpub.netOICQ :7389650
只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰网域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:060528号 联系我们 法律顾问