ORACLE局部索引和全局索引

来源:互联网 发布:域名搜索引擎 编辑:程序博客网 时间:2024/06/05 02:28
ALTER INDEX UR_INDEX_NAME UNUSABLE;ALTER INDEX UR_INDEX_NAME REBUILD;
当需要网一个表中插入大量数据的时候,最好能够先把索引取消,以提高插入的速度。如现在数据库管理员需要往表Product中添加记录的话,无论其采用什么方式,如采用Select into语句,还是采用图形化的导入工具都好。当需要插入的记录比较多的时候,最好先把索引禁用掉。此时数据库只需要在数据表中插入数据即可,而不用维护索引表。等到数据导入完成之后,再起用这个索引。此时数据库会重建这些记录的索引。这是大部分数据库管理员在数据插入的过程中常用的手段。可以明显提高数据库的插入性能。
如果是创建了一个全局索引的话,虽然每次只向一个表分区内插入50多万条数据,但是为了维护全局索引,必须把每条数据插入到这个全局索引中,假设这个表保存了6个月的数据,那就是将近1亿条的数据,向拥有这么大数据量的一棵索引树上更新数据可想而知会有多慢!
而局部索引则完全不一样,它只在自己的分区上维护一棵很小的索引树,所以性能会好很多。
通常情况下在数据仓库中较多用到的是局部索引,因为如果是全局索引的话,如果某一个分区出现故障或者手工删除了某个较旧的分区,则会导致整个全局索引不可用
0 0