管理索引的一些原则
创建索引的时候遵循下列原则:
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;
在以上图中,在合并之前,前面两个叶块只有一半占用,这时候你就可以使用COALESCE收缩使它变成右图这样。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/517786/viewspace-661533/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/517786/viewspace-661533/