管理索引的一些原则

   管理索引的一些原则

 

 

创建索引的时候遵循下列原则:

1.如果你要频繁的返回一个大表的不超过15%的数据,那么创建索引。比例越小,速度越快。

2.索引列作为连接键时可以提升多表连接的性能。

3.小表不需要索引。

 

对于索引列的选择,符合以下条件的优先做索引列:

1.    列值具有唯一性。

2.    列值分布很广泛(适用于普通B树索引)。

3.    劣值分布很少(适用于bitmap索引)。

4.    列包含很多空值,但是经常选择的是有值的数据行。

使用下面的方式:

WHERE COL_X > -9.99 * power(10,125)

比使用

WHERE COL_X IS NOT NULL

效果要好。前面语句可以使用到索引。

 

下列特性的列不适合建立索引:

包含大量空值的列,并且不搜索非空值。

LONG and LONG RAW 列不能建索引。

 

下列情况下索引应该drop

1.    不能对查询加速。表很小或者

2.    应用的查询不在需要使用这个索引。

3.    在重建之前必须先删除掉。

 

并行创建索引:

你可以像并行创建表一样,并行创建索引。因为多个进程同时处理创建索引,因此比单个进程处理要快。在并行创建索引时,每个查询服务器分别使用单独的存储参数。因此,如果索引创建时使用的initial的值是5M,并行度为12,那么在索引创建过程中要消耗最少60M存储。

 

使用nologging创建索引:

你可以在创建索引的时候指定nologging关键字来使操作产生最少的重做日志。使用nologging有以下好处:

1.    重做日志文件节省空间。

2.    创建索引的时间变短。

3.    并行创建大索引的时候提升性能。

对于大的索引性能提升明显,而对于小表则没有多大影响。特别是在使用了并行的时候。

 

收缩和重建索引的成本和益处考虑:

不正确的大小和增长或产生碎片,为了消除碎片,你可以合并收缩或者重建。

重建索引:

1.    可以快速移动索引到别的表空间。

2.    成本较高,需要更多的磁盘空间。

3.    创建新的树,收缩高度。

4.    在不删除原索引的基础上快速改变存储和表空间参数。

合并收缩索引:

1.    不能移动索引到别的表空间。

2.    低成本,不需要额外的磁盘空间。

3.    在树的同一分支内合并叶块。

4.    快速释放叶块空间。

5.     

使用B树索引的时候可以释放叶块并重用。

合并叶块使用以下命令:

ALTER INDEX vmoore COALESCE;

 

517786_201004281111221.jpg

在以上图中,在合并之前,前面两个叶块只有一半占用,这时候你就可以使用COALESCE收缩使它变成右图这样。

 

fj.pngclip_image002.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/517786/viewspace-661533/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/517786/viewspace-661533/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值