Chinaunix首页 | 论坛 | 博客
  • 博客访问: 82816
  • 博文数量: 38
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 360
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-11 14:02
文章分类
文章存档

2017年(38)

我的朋友

分类: Oracle

2017-12-07 13:48:13

1. 为什么要rebuild index?
在表上频繁的updatedelete的操作会导致索引出现很多空间碎片,从而使得访问该索引的SQL查询效率下降,通过rebuild index,可以回缩空间碎片,并提供查询效率。

2.rebuild index時如何提高速度?
1>使用nologging,減少redo的產生
2>使用parallel

3>盡量在不對表進行dml操作時,進行rebuild,這樣就可以不使用online選項
4>使剩余的index表空間要大于索引的空間
5>最大temp表空間,建立索引的時候會用到temp段

3.rebuild不加online和加online區別?
1>加online
rebulid online執行過程中可以對表進行DML動作,但在rebuild online之前要注意有沒有其它session對table的鎖,如果有鎖rebuild會hang住直到鎖備釋放為止,這么任何session都不能對table進行DML操作了,而且rebuild的時間會較長
可查看案例:http://www.itpub.net/forum.php?mod=viewthread&tid=1445427&extra=&highlight=&page=1
2>不加online(其實就是offline)
rebuild執行過程中不能對表進行DML操作,在rebulid前即便其它session對table有鎖也可以rebulid完成,且執行速度較快

阅读(1332) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~