为何要重建索引 index
如果索引因为某些原因无效或者因为很长时间没有维护而产生过多的索引碎片(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相关推荐
- 重建索引:ALTER INDEX..REBUILD ONLINE vs ALTER INDEX..REBUILD
什么时候需要重建索引1. 删除的空间没有重用,导致 索引出现碎片 2. 删除大量的表数据后,空间没有重用,导致 索引"虚高" 3.索引的 clustering_facto 和表不一 ...
- mysql repair 索引_mysql 创建索引、重建索引、查询索引、删除索引 转自:http://www.phpernote.com/mysql/942.html...
本篇文章主要是对MySQL索引操作方法做了一下总结,包括创建索引.重建索引.查询索引.删除索引的操作.以下所列示例中中 `table_name` 表示数据表名,`index_name` 表示索引名,c ...
- oracle建索引默认并发,ORACLE重建索引需要考虑问题
一:考虑重建索引的场合 1:表上频繁发生update,delete操作 2:表上发生了alter table ..move操作(move操作导致了rowid变化) 二:判断重建索引的标准 索引重建是否 ...
- mysql为什么要重建索引_Oracle 重建索引的必要性
索引重建是一个争论不休被不断热烈讨论的议题.当然Oracle官方也有自己的观点,我们很多DBA也是遵循这一准则来重建索引,那就是O 索引重建是一个争论不休被不断热烈讨论的议题.当然Oracle官方也有 ...
- 重建索引能释放掉字段因更改而产生额外列偏移量
1建表和索引 create table index_test (id int identity(1,1),name sysname); create clustered index nonidex_ ...
- 教你如何在 elasticsearch 中重建索引
序言 Elasticsearch 是一个实时的分布式搜索分析引擎.Teambition 使用 Elastisearch 作为搜索引擎,为用户提供搜索服务,当我们决定存储某种数据时,我们需要使用PUT ...
- oracle如何并发重建索引,oracle数据库如何重建索引?
[问题描述] oracle数据库表如何重建索引? [概述] 请在Oracle数据库里面执行如下语句: declare v_table_name varchar(255):=''; v_index_n ...
- oracle表重命名 索引,CSS_在Oracle数据库中按用户名重建索引的方法,如果你管理的Oracle数据库下某 - phpStudy...
在Oracle数据库中按用户名重建索引的方法 如果你管理的Oracle数据库下某些应用项目有大量的修改删除操作, 数据索引是需要周期性的重建的. 它不仅可以提高查询性能, 还能增加索引表空间空闲空间大 ...
- dbcc dbreindex server sql_DBCC DBREINDEX重建索引提高SQL Server性能
DBCC DBREINDEX重建索引提高SQL Server性能 [转载]大多数SQL Server表需要索引来提高数据的访问速度,如果没有索引,SQL Server 要进行表格扫描读取表中的每一个记 ...
最新文章
- 中小学计算机报名网址,小学网上报名系统_小学网上在线报名解决方案_海之睿报名系统...
- IOS 关于ipad iphone5s崩溃 解决
- 电脑技巧:键盘上ESC按键的使用小技巧,你都知道吗?
- nodejs android 推送,利用Nodejs怎么实现一个微信小程序消息推送功能
- MSSql ID自动增长删除数据重1开始
- 计算机的组成 —— 鼠标
- Android P2P语音通话实现 【转】http://macleo.iteye.com/blog/1707455
- Google快捷键大全
- 深度学习计算机视觉高级图片标注工具SmartTool介绍
- iPhone如何连接U盘呢 iphone连接u盘方法教程
- 基于易智瑞(ArcGIS)JavaScript API的视频融合探索
- 边缘视频监控平台EVS公测上线!
- 微信小程序下载视频到相册(带进度条)
- PTA 天梯赛 L1-7 天梯赛的善良 (20 分)
- Java程序设计实验(二):类的创建和封装实验
- android dashboard 开源,android dashboard布局
- Pinia:Vue3.js的状态管理器
- 【Python】字符串的创建与驻留机制
- html5免费文本教程,HTML5-文本元素
- 爬取大众点评黄焖鸡米饭的数据