如果索引因为某些原因无效或者因为很长时间没有维护而产生过多的索引碎片(Index Fragment),需要通过重建索引来消除索引碎片。何时需

要重建索引,可以利用下面的过程进行判断。

查询数据库中有哪些索引。

SQL>SELECT OWNER,INDEX_NAME FROM user_indexes;

SQL语句的执行结果是:

INDEX_NAME                     TABLE_OWNER                    TABLE_NAME

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

I_ID_SAMLLTABLE                SCOTT                          SMALLTABLE

I_ID_BIGTABLE                  SCOTT                          BIGTABLE

PK_EMP                         SCOTT                          EMP

PK_DEPT                        SCOTT                          DEPT

本文将以索引I_ID_BIGTABLE为例。

对索引INDF5进行分析。

SQL> ANALYZE index I_ID_BIGTABLE VALIDATE STRUCTURE;

Index analyzed

从视图INDEX_STATS中获得索引I_ID_BIGTABLE的统计信息。

SQL>SELECT HEIGHT,(DEL_LF_ROWS_LEN/LF_ROWS_LEN)*100 FROM INDEX_STATS WHERE NAME='I_ID_BIGTABLE';

SQL语句的执行结果是:

HEIGHT (DEL_LF_ROWS_LEN/LF_ROWS_LEN)*

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

1        10.1

其中,字典INDEX_STATS表示存放索引的统计信息;列DEL_LF_ROWS_LEN表示索引删除行数;列LF_ROWS_LEN表示索引总行数;列HEIGHT表示二叉树

中从根块到叶块的层次(深度)。

如果满足下面其中一个条件,则要考虑重建索引:

(DEL_LF_ROWS_LEN/LF_ROWS_LEN)*100的值大于20

HEIGHT的值大于4(说明二叉树的层次太多)

使用ALTER INDEX ... REBUILD命令重建索引I_ID_BIGTABLE。

SQL> ALTER INDEX I_ID_BIGTABLE REBUILD;

原文:http://blog.itpub.net/25794484/viewspace-732055/

为何要重建索引 index相关推荐

  1. 重建索引:ALTER INDEX..REBUILD ONLINE vs ALTER INDEX..REBUILD

    什么时候需要重建索引1. 删除的空间没有重用,导致 索引出现碎片 2. 删除大量的表数据后,空间没有重用,导致 索引"虚高" 3.索引的 clustering_facto 和表不一 ...

  2. mysql repair 索引_mysql 创建索引、重建索引、查询索引、删除索引 转自:http://www.phpernote.com/mysql/942.html...

    本篇文章主要是对MySQL索引操作方法做了一下总结,包括创建索引.重建索引.查询索引.删除索引的操作.以下所列示例中中 `table_name` 表示数据表名,`index_name` 表示索引名,c ...

  3. oracle建索引默认并发,ORACLE重建索引需要考虑问题

    一:考虑重建索引的场合 1:表上频繁发生update,delete操作 2:表上发生了alter table ..move操作(move操作导致了rowid变化) 二:判断重建索引的标准 索引重建是否 ...

  4. mysql为什么要重建索引_Oracle 重建索引的必要性

    索引重建是一个争论不休被不断热烈讨论的议题.当然Oracle官方也有自己的观点,我们很多DBA也是遵循这一准则来重建索引,那就是O 索引重建是一个争论不休被不断热烈讨论的议题.当然Oracle官方也有 ...

  5. 重建索引能释放掉字段因更改而产生额外列偏移量

    1建表和索引 create table index_test (id int identity(1,1),name sysname); create  clustered index nonidex_ ...

  6. 教你如何在 elasticsearch 中重建索引

    序言 Elasticsearch 是一个实时的分布式搜索分析引擎.Teambition 使用 Elastisearch 作为搜索引擎,为用户提供搜索服务,当我们决定存储某种数据时,我们需要使用PUT ...

  7. oracle如何并发重建索引,oracle数据库如何重建索引?

    [问题描述] oracle数据库表如何重建索引? [概述] 请在Oracle数据库里面执行如下语句: declare v_table_name  varchar(255):=''; v_index_n ...

  8. oracle表重命名 索引,CSS_在Oracle数据库中按用户名重建索引的方法,如果你管理的Oracle数据库下某 - phpStudy...

    在Oracle数据库中按用户名重建索引的方法 如果你管理的Oracle数据库下某些应用项目有大量的修改删除操作, 数据索引是需要周期性的重建的. 它不仅可以提高查询性能, 还能增加索引表空间空闲空间大 ...

  9. dbcc dbreindex server sql_DBCC DBREINDEX重建索引提高SQL Server性能

    DBCC DBREINDEX重建索引提高SQL Server性能 [转载]大多数SQL Server表需要索引来提高数据的访问速度,如果没有索引,SQL Server 要进行表格扫描读取表中的每一个记 ...

最新文章

  1. 中小学计算机报名网址,小学网上报名系统_小学网上在线报名解决方案_海之睿报名系统...
  2. IOS 关于ipad iphone5s崩溃 解决
  3. 电脑技巧:键盘上ESC按键的使用小技巧,你都知道吗?
  4. nodejs android 推送,利用Nodejs怎么实现一个微信小程序消息推送功能
  5. MSSql ID自动增长删除数据重1开始
  6. 计算机的组成 —— 鼠标
  7. Android P2P语音通话实现 【转】http://macleo.iteye.com/blog/1707455
  8. Google快捷键大全
  9. 深度学习计算机视觉高级图片标注工具SmartTool介绍
  10. iPhone如何连接U盘呢 iphone连接u盘方法教程
  11. 基于易智瑞(ArcGIS)JavaScript API的视频融合探索
  12. 边缘视频监控平台EVS公测上线!
  13. 微信小程序下载视频到相册(带进度条)
  14. PTA 天梯赛 L1-7 天梯赛的善良 (20 分)
  15. Java程序设计实验(二):类的创建和封装实验
  16. android dashboard 开源,android dashboard布局
  17. Pinia:Vue3.js的状态管理器
  18. 【Python】字符串的创建与驻留机制
  19. html5免费文本教程,HTML5-文本元素
  20. 爬取大众点评黄焖鸡米饭的数据

热门文章

  1. 安装rouge和pyrouge
  2. 标签名选择器、id选择器、class类型选择器、组合选择器
  3. 玩转Openwrt(二) — 配合Android手机打造无线音乐播放器
  4. 学游戏建模,怎么能没有几款上手的软件,8款超好用的3D建模软件
  5. 浅谈一下个人基于IRIS后端业务开发框架的理解
  6. Qt创建停靠悬浮窗口实例
  7. 敏涵控股集团董事长刘敏: “匠心精神”的专业引路人
  8. 1.2.1 python中的函数
  9. 在PPT中看不到边框
  10. Vivado:【1】Vivado 2018.3 配置ModelSim仿真