当前位置: 代码迷 >> Oracle开发 >> oracle 索引~该如何处理
  详细解决方案

oracle 索引~该如何处理

热度:492   发布时间:2016-04-24 06:28:27.0
oracle 索引~
oracle  如果在一张比较大的表上建立个索引,建立索引的过程中,会影响到表数据的读写吗?~

背景:表大约有500W+数据,大概有300个并发读写~
------解决思路----------------------
其它会话还是可以读写的。
但是你想,建索引过程中要把所有记录读一遍,硬盘IO很忙,要说完全没有影响也不可能。
------解决思路----------------------
是24h一直在写吗?如果不是,在相对空闲时间建索引。
如果是,建的时候肯定影响到写的效率,并且建好后写的速度也会变慢。
注意在数据库完全空闲的时候建索引,可以考虑并行parallel。
------解决思路----------------------
当然有影响,你建索引过程中,有数据写入表,对新数据也需要建立读写,有交互影响
------解决思路----------------------
在建立索引时,读和写都会受到影响,在系统相对空闲的时候,再建立 。

你这 500W 的数据,大概 30 分钟,就可以创建完成。
------解决思路----------------------
索引创建后,对数据的插入、更新、删除 索引也要动态的维护 所以有一定影响。
但是 楼主这个意思只是问 建立索引的过程中,会影响到表数据的读写。这个当然可以建立,但是只是建议空闲时间创建。
------解决思路----------------------
索引基本作用是加快数据查询速度,但是代价是降低读写速度,这是索引自身的特性
影响是肯定有的,建议大量写入前,删掉索引,写入完成后重建索引,通常比大量数据直接写入要快
  相关解决方案