程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> 分析oracle索引空間使用情況,以及索引是否需要重建

分析oracle索引空間使用情況,以及索引是否需要重建

編輯:Oracle教程

分析oracle索引空間使用情況,以及索引是否需要重建


分析索引空間使用情況,以及索引是否需要重建

分析其他用戶下的索引需要 analyze any的權限
分析索引前先查看表的大小和索引的大小,如果索引大小和表大小一樣大或者大於表的大小,那麼可以判斷索引可能有問題,需要分析索引
查詢對象大小:
select owner,segment_name,segment_type,bytes/1024/1024 from dba_segments order by 4 desc

1.分析索引
SQL> analyze index AA.INDEX_AA validate structure;
SQL>
Index analyzed

查詢空間使用情況:

SQL> select name, blocks, lf_blks, br_blks, blocks-(lf_blks+br_blks) empty from index_stats;

NAME BLOCKS LF_BLKS BR_BLKS EMPTY
------------------------------ ---------- ---------- ---------- ----------
AA 262144 253480 725 7939
--索引空塊達到了7939

2.查詢索引刪除行和刪除比例(一般刪除率達到30%就要考慮重建索引)
SQL> select t.name, --索引名
2 t.lf_rows, --number of leaf rows (values in the index)
3 t.lf_blks,
4 t.del_lf_rows, --number of deleted leaf rows in the index
5 (t.del_lf_rows / t.lf_rows)*100 ratio --刪除比例
6 from index_stats t
7 where t.name='INDEX_AA';

NAME LF_ROWS LF_BLKS DEL_LF_ROWS RATIO
------------------------------ ---------- ---------- ----------- ----------
AA 77318533 253480 0 0

3.查看索引的使用率以及索引深度(深度>=4時就考慮重建索引)
SQL> SELECT height, NAME, BTREE_SPACE, USED_SPACE, PCT_USED FROM INDEX_STATS;

HEIGHT NAME BTREE_SPACE USED_SPACE PCT_USED
---------- ------------------------------ ----------- ---------- ----------
4 INDEX_AA 2032646380 1231201944 61
--索引深度為4
滿足下列條件考慮重建索引
The most common justifications given for rebuilding an index are:
- index becomes fragmented
- index grows and grows - deleted space is not re-used
- index clustering factor becomes out of sync

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved