开发者社区> 青夜之衫> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

ORACLE索引的管理

简介:
+关注继续查看

前言:数据库运行了一段时间之后,由于频繁的进行了增删改,索引就会产生碎片,碎片多了自然而然的就会影响查询的效率。通过ORACLE提供的一些管理视图和工具就可以分析出数据库的哪些索引由于碎片太多需要进行重建;

一、查找数据库比较占用空间的索引

需要根据业务设定搜索的条件,索引大小大于特定值,索引的层数大于1的索引

Select a.index_name,a.table_name,a.blevel,B.BLOCKS*8/1024 MB,b.bytes

from dba_indexes a,dba_segments b

Where a.index_name=b.segment_name and a.owner=b.owner and b.segment_type='INDEX'

And a.blevel>1 and B.BLOCKS*8/1024>'&B'

And b.tablespace_name='&A';

二、进行索引的分析

2.1 标准的SQL语句如下:

analyze index index_name validate structure;

例如:schemas:ekpj

table_name:I_SYS_WF_HISTO_PROCESS_ID1

脚本:analyze index ekpj. I_SYS_WF_HISTO_PROCESS_ID1 validate structure;

2.2 查看分析结果:

select name,height, del_lf_rows, lf_rows,

round((del_lf_rows/(lf_rows+0.0000000001))*100) "Frag Percent" from

index_stats;

当Frag Percent大于10的时候,即可对索引进行重建;

三、索引重建的脚本

ALTER INDEX index_name

REBUILD

NOCOMPRESS

NOPARALLEL

NOLOGGING

TABLESPACE USERS

STORAGE (

INITIAL 38M

NEXT 1M

)

ONLINE;

总结:

需要通过业务了解哪些表会频繁的进行增删改,因为索引碎片产生的原因是由于增删改操作导致的,知道了这些操作将事半功倍;
进行索引重建必须放在业务的空闲期操作,避免影响业务的正常操作;

本文转自ICT时空 dbasdk博客,原文链接:ORACLE索引的管理,如需转载请自行联系原博主。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
在Oracle中,如何管理联机Redo日志组与成员?
在Oracle中,如何管理联机Redo日志组与成员?
0 0
6-3 Oracle 表的管理-表复杂查询
学习了解6-3 Oracle 表的管理-表复杂查询。
0 0
6 Oracle 表的管理-表查询(重点)
利用scott用户存在的几张表(emp,dept)来演示如何使用select查询语句。
0 0
6 Oracle 表的管理
学习了解6 Oracle 表的管理。
0 0
Oracle数据库系统管理与运维 | Oracle体系结构与性能优化
Oracle数据库系统管理与运维 | Oracle体系结构与性能优化
0 0
Oracle数据库系统管理与运维 | 数据库进程
Oracle数据库系统管理与运维 | 数据库进程
0 0
Oracle数据库系统管理与运维 | 项目案例
Oracle数据库系统管理与运维 | 项目案例
0 0
oracle学习71-oracle之创建和管理表之练习题
oracle学习71-oracle之创建和管理表之练习题
0 0
oracle学习8-使用profile管理用户口令
oracle学习8-使用profile管理用户口令
0 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
EasyDBforOracle— 基于阿里云的Oracle最佳实践
立即下载
Oracle云上最佳实践
立即下载
迁移 ORACLE 最佳实践
立即下载