服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Oracle - Oracle中检查是否需要重构索引的sql

Oracle中检查是否需要重构索引的sql

2019-11-29 17:43Oracle教程网 Oracle

经常需要在Oracle中检查是否需要重构索引,在此写了个示例语句,有此需求的朋友可以参考下,希望对大家有所帮助

代码如下:


SELECT 
height, /*Height of the B-Tree*/ 
blocks, /* Blocks in the index segment */ 
name, /*index name */ 
lf_rows, /* number of leaf rows in the index */ 
lf_blks, /* number of leaf blocks in the index */ 
del_lf_rows, /* number of deleted leaf rows in the index */ 
rows_per_key /* average number of rows per distinct key */ 
blk_gets_per_access /* consistent mode block reads (gets) */ 
FROM INDEX_STATS 
WHERE NAME='INDEX_NAME'; 

 

复制代码代码如下:


ANALYZE index INDEX_NAME VALIDATE STRUCTURE 



HEIGHT: 
This column refers to the height of the B-tree index, and it's usually at the 1, 2, or 3 level. 
If large inserts push the index height beyond a level of 4, it's time to rebuild, which flattens the B-tree. 

DEL_LF_ROWS: 
This is the number of leaf nodes deleted due to the deletion of rows. 
Oracle doesn't rebuild indexes automatically and, consequently, too many deleted leaf rows can lead to an unbalanced B-tree. 

BLK_GETS_PER_ACCESS: 
You can look at the BLK_GETS_PER_ACCESS column to see how much logical I/O it takes to retrieve data from the index. If this row shows a double-digit number, you should probably start rebuilding the index.

延伸 · 阅读

精彩推荐