create index index_name on table_name(column_name) ;
--创建表
create table aaa
(
a number,
b number
);
--创建索引
create index idx_a on aaa (a);
--使用索引
select from aaa where a=1;
这句查询就会使用索引 idx_a
效果比较明显,有一定的实用性。
随着数据量增加,索引树的高度也会增加,oracle的建议是索引树高度超过4需要重建索引,但如果因为数据量的累加而导致高度增加,重建不起作用,本人唯一了解到的办法只有物理分表,单表数据量的控制可以有效避免索引的性能恶化。
当索引的碎片过多时,会影响执行查询的速度,从而影响到我们的工作效率。这时候采取的最有利的措施莫过于重建索引了。本文主要介绍了Oracle数据库中检查索引碎片并重建索引的过程,接下来我们就开始介绍这一过程。 重建索引的步骤如下: 1 确认基本信息 登入数据库,找到专门存放index 的tablespace,并且这个tablespace下所有index的owner都是tax将index专门存放在一个独立的tablespace, 与数据表的tablespace分离,是常用的数据库设计方法。 2 查找哪些index需要重建 通过anlyze index validate structure命令可以分析单个指定的index,并且将单个index 分析的结果存放到 index_stats试图下。一般判断的依据是: height >4 pct_used < 50% del_lf_rows / lf_rows +0001 > 003 g ) 3 google上下载了遍历所有index脚本 发现anlyze index validate structure只能填充单个index分析信息,于是google了下,从网上下了个Loop 脚本,遍历索引空间下所有的索引名字,并且可以把所有index的分析信息存放到自己建立的一个用户表中。 4 anlyze index 锁定index 发现下载的脚本不好用,应为anlyze index在分析索引前要争取独占锁,锁住index,很明显有些index正在被应用系统的使用,所以运行anlyze失败。这里吸取的教训是,尽量晚上做这种事。但是本人比较喜欢准时回家,所以在语句中添加Exception Handler,抛出anlyze index执行失败的那些index 名称,使脚本正常运行完毕。并且根据打印到前台的index name手动执行那些index分析。 5 总结 虽然发现522个index中有160个符合上面的判断的依据。但是发现索引都不大,而那些拥有百万leaf的索引又没有符合上面的判断条件,所以结论是无需index rebuild online 没有啥碎片。 6什么时候可以rebuild index呢 rebuild index online,对那些有大量DML *** 作的大索引是有益的。可以每个月季度做一次针对较大索引的rebuild。
以上就是关于如何使用pl/sql 给一个oracle数据库中的表的字段建索引全部的内容,包括:如何使用pl/sql 给一个oracle数据库中的表的字段建索引、oracle数据库几万条数据索引效果明显吗、oracle数据库如何重建索引等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)