求教全表索引重建该如何做?

dctg2003 2013-01-01 11:33:06
求教全表索引重建该如何做?我现在只会alter index idx_name rebuild。表太多了。求教如何操作。求详细过程。。。谢谢
...全文
271 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
dctg2003 2013-01-05
  • 打赏
  • 举报
回复
引用 2 楼 linwaterbin 的回复:
begin for rec in (select index_name from user_indexes) loop execute immediate 'alter index '||rec.index_name||' rebuild'; end loop; end; 不好意思哈,刚打错了,这段可以,有些表如果有约束,可能要先disable掉
貌似会报错0ra-00054 ...
陈字文 2013-01-02
  • 打赏
  • 举报
回复
1、SELECT * FROM USER_INDEXES 找到所有需要进行重建的索引. 2、ALTER INDEX USER_INDEXES.INDEX_NAME REBUILD;进行重建。 SELECT 'ALTER INDEX '||USER_INDEXES.INDEX_NAME||' REBUILD;' FROM ALL_INDEXES; 得到的结果整列复制到某个SQL文件里面,然后放到cmd下,当着别人的面华丽的执行吧。。。看着黑屏上呼呼闪过的文字,很有一种玩DOS的快感。 @rebuild.sql or start rebuild.sql 当然,写个过程也未尝不可,就像版主那样。
清风智语 2013-01-02
  • 打赏
  • 举报
回复
引用 1 楼 linwaterbin 的回复:
begin for rec in (select table_name from user_tables) loop execute immediate 'alter index '||rec.index_name||' rebuild'; end loop; end; /
约束和索引有关系吗?
善若止水 2013-01-01
  • 打赏
  • 举报
回复
很好,学习了
winer1220 2013-01-01
  • 打赏
  • 举报
回复
通过系统表user_indexes就可以完成
BenChiM888 2013-01-01
  • 打赏
  • 举报
回复
思路如此。
引用 2 楼 linwaterbin 的回复:
begin for rec in (select index_name from user_indexes) loop execute immediate 'alter index '||rec.index_name||' rebuild'; end loop; end; 不好意思哈,刚打错了,这段可以,有些表如果有约束,可能……
C18 2013-01-01
  • 打赏
  • 举报
回复
版主太尽职了
linwaterbin 2013-01-01
  • 打赏
  • 举报
回复
begin for rec in (select index_name from user_indexes) loop execute immediate 'alter index '||rec.index_name||' rebuild'; end loop; end; 不好意思哈,刚打错了,这段可以,有些表如果有约束,可能要先disable掉
linwaterbin 2013-01-01
  • 打赏
  • 举报
回复
begin for rec in (select table_name from user_tables) loop execute immediate 'alter index '||rec.index_name||' rebuild'; end loop; end; /

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧