在 oracle中,重建普通表上的索引很简单。要重建特定索引,只需执行如下sql命令:

ALTER INDEX INDEX_NAME Rebuild;

这里,INDEX_NAME 代表索引的名字,下同。

如果重建某个表上的全部索引,执行如下 PL/SQL 代码:

begin
    for c1 in (select t.index_name, t.partitioned from user_indexes t where table_name = 'TABLE_NAME') loop
        if c1.partitioned='NO' then
            execute immediate 'ALTER INDEX ' || c1.index_name || ' REBUILD';
        end if;
    end loop;
end;
/

这里,TABLE_NAME 代表索引的名字,下同。

而重建分区表上的索引的方法和上面的有所不同。

如果这个索引不是分区的,那么重建的方法 和 重建普通表上的索引 相同。

如果这个索引是分区的,重建方法是执行如下sql代码:

begin
      for c2 in (select partition_name from user_ind_partitions where index_name='INDEX_NAME' and status = 'UNUSABLE')
      loop
        execute immediate 'alter index ' || c1.index_name || ' rebuild partition ' || c2.partition_name;
      end loop;
end;

重建一张表上的所有非分区索引的方法是执行如下sql代码:

begin
    for c1 in (select t.index_name, t.partitioned from user_indexes t where table_name = 'TABLE_NAME')
    loop
        if c1.partitioned='YES'
            -- rebuild every unusable partition for partitioned index
            for c2 in (select partition_name from user_ind_partitions where index_name=c1.index_name and status = 'UNUSABLE')
            loop
                execute immediate 'alter index ' || c1.index_name || ' rebuild partition ' || c2.partition_name;
            end loop;
        end if;
    end loop;
end;

而重建这张表上的全部索引的sql 代码如下:

begin
  for c1 in (select t.index_name, t.partitioned from user_indexes t where table_name = 'TABLE_NAME'))
  loop
    if c1.partitioned='NO' then
      -- rebuild global index directly
      execute immediate 'alter index ' || c1.index_name || ' rebuild';
    else
      -- rebuild every unusable partition for partitioned index
      for c2 in (select partition_name from user_ind_partitions where index_name=c1.index_name and status = 'UNUSABLE')
      loop
        execute immediate 'alter index ' || c1.index_name || ' rebuild partition ' || c2.partition_name;
      end loop;
    end if;
  end loop;
end;

在 Oracle 中重建分区表上的索引相关推荐

  1. Oracle中重建表的全局的索引、分区索引、及同时建全局和分区索引----脚本

    在oracle中,重建普通表上的索引很简单.要重建特定索引,只需执行如下sql命令: ALTER INDEX INDEX_NAME Rebuild; 这里INDEX_NAME 代表索引的名字,下同. ...

  2. sql分区表上创建索引_SQL Server中分区表和索引的选项

    sql分区表上创建索引 介绍 (Introduction) I work for a large, multinational financial institution. Like most com ...

  3. oracle分区表加索引,Oracle 分区表上的索引

    分区表上的索引分为:本地(局部)索引(local index) 和 全局索引(global index) 1.本地索引 (1)普通索引 SQL > CREATE INDEX INDEX_NAME ...

  4. oracle中主键和唯一索引的区别说明

    上周六去参加上海Oracle WDP俱乐部沙龙的一次交流,其中提到了关于"Oracle中主键和唯一索引的区别",基本上大家都可以说上几个,在网上也可以找到,但是总感觉不太全,根据自 ...

  5. oracle查找分区重建,Oracle中重建表分区

    Oracle中重建表分区 个人分类:原创笔记 例如对myuser用户下表userbase执行表分区重建操作! 1--验证是否可以执行 SQL> execute dbms_redefinition ...

  6. 如何在ORACLE数据库的字段上建立索引?

    Oracle中建立索引,会提高查询速度: create index 索引名 on 表名(列名); 例如: create index index_userid on tbl_detail(userid) ...

  7. oracle技术之顺序文件上的索引(一)

    顺序文件上的索引(一) 研究索引结构,我们首先来考虑最简单的一种:由一个称为数据文件的排序文件得到另一个称为索引文件的文件,而这个索引文件由键-指针对组成.在索引文件中查找键K通过指针指向数据文件中查 ...

  8. ORACLE中关于外键缺少索引的探讨和总结

    在ORACLE数据库中,定义外键约束时,ORACLE是不会自动创建对应索引的,必须手动在外键约束相关的列上创建索引.那么外键字段上是否有必要创建索引呢?如果有必要的话,巡检时,如何找出外键字段上没有创 ...

  9. SQLServer中在视图上使用索引(转载)

    在SQL Server中,视图是一个保存的T-SQL查询.视图定义由SQL Server保存,以便它能够用作一个虚拟表来简化查询,并给基表增加另一层安全.但是,它并不占用数据库的任何空间.实际上,在你 ...

最新文章

  1. 新能源汽车:大变革催生十万亿市场空间
  2. linux下杀死进程的10种方法
  3. 【html、CSS、javascript-8】JavaScript作用域
  4. conv2d函数_Pytorch 从0开始学(6)——Conv2d 详解
  5. 【Android 逆向】ART 脱壳 ( InMemoryDexClassLoader 脱壳 | InMemoryDexClassLoader 类加载器脱壳点总结 )
  6. C++ 带默认参数值的函数
  7. android格式化时间中文版,Android 仿微信聊天时间格式化显示功能
  8. 城市交通路网(信息学奥赛一本通-T1261)
  9. 20160417_无为_常州
  10. java的split的正则_Java正则表达式之split()方法实例详解
  11. 【面向对象】UML类图、用例图、顺序图、活动图、状态图、通信图、构件图、部署图
  12. 第五章:项目范围管理 - (5.4 创建 WBS )
  13. redis的hset hget mset mget是什么
  14. ChinaSoft 论坛巡礼 | 移动软件工程论坛
  15. 现金流量表补充资料的编制公式
  16. uni-app 图片上传插件使用说明
  17. 微信扫码登录,微信公众号生成二维码,关注登录nodejs+vue
  18. GIS中快速添加天地图、查看历史影像
  19. 为自动驾驶保驾护航—谈谈主流中间件设计
  20. IT资质认证证书如何查询?这篇文章教你查询方式

热门文章

  1. 2021牛客多校9 A Math Challenge(类欧几里得算法+自然数幂前缀和)
  2. ct上的字怎么消_太全了!CT和PT断线依据,从此判断不求人了!
  3. 美国留学遇到困难怎么办?
  4. 大厂实践|Apache Pulsar 消息队列在拉卡拉的应用
  5. 多商家小程序功能系统
  6. 免费点亮手机腾讯网图标_不用手机照样点亮
  7. python数据分析基础 阮敬_教学大纲_Python数据分析
  8. Android Camera 预览、拍照、保存照片 实现
  9. Chinese word segmentation 中文词分割
  10. java 判断文件的类型,用java流方式判断文件类型