首页 > 其他分享 >分区索引快速创建

分区索引快速创建

时间:2022-10-06 22:25:49浏览次数:46  
标签:index name 创建 分区 partition 索引 tablespace alter

较大的分区表在创建索引的时候是一件非常痛苦的事情,执行过程很漫长,会使用大量的资源。到新的工作地点后,数据治理的同事给了一个非常好的案例,首先创建一个unusable的索引,这样索引定义非常快速的被创建完毕,然后针对unusable状态的分区挨个进行重建,这种操作相比直接创建分区索引较为高效,下面演示案例

1.创建测试表 

CREATE TABLE t(id int,name varchar2(20))
PARTITION BY RANGE (id)
(PARTITION p1 VALUES LESS THAN (10),
PARTITION p2 VALUES LESS THAN (20),
PARTITION p3 VALUES LESS THAN (30),
PARTITION p4 VALUES LESS THAN (40)
);

2.插入数据

begin
for i in 1 .. 39 loop
insert into t values(i,'andyi'||i);
end loop ;
commit;
end;
/

3.创建不可用索引

create index t_1 on t(id) local unusable; 
alter index t_1 unusable;

4.使用一下语句对分区进行语句构建

#以下SQL是专门搞数据治理的同事给的

set lines 200 pages 200
col table_name for a25
col create_sql for a120
select b.table_name,
       'alter index ' || t.index_owner ||'.'|| t.index_name ||
       ' rebuild partition ' || partition_name || ' parallel(degree 16) ' ||
       ' tablespace ' || replace(t.tablespace_name, 'D_', 'I_') ||
       ' nologging;' create_sql
  from dba_ind_partitions t, dba_indexes b
where t.index_name = b.index_name
   and t.status = 'UNUSABLE'
   AND T.INDEX_OWNER = b.owner
order by b.table_name, partition_name;

TABLE_NAME CREATE_SQL
------------------------- ------------------------------------------------------------------------------------------------------------------------
T alter index DBMON.T_1 rebuild partition P1 parallel(degree 16) tablespace USERS nologging;
T alter index DBMON.T_1 rebuild partition P2 parallel(degree 16) tablespace USERS nologging;
T alter index DBMON.T_1 rebuild partition P3 parallel(degree 16) tablespace USERS nologging;
T alter index DBMON.T_1 rebuild partition P4 parallel(degree 16) tablespace USERS nologging;

 

 

     

标签:index,name,创建,分区,partition,索引,tablespace,alter
From: https://www.cnblogs.com/hanglinux/p/16758665.html

相关文章

  • linux读写一个NTFS分区
    为了读写一个NTFS分区的数据,挂载的时候出现错误提示如下:root@tv:/home/xx#mount-tntfs-3g/dev/sdb1/media/sxx/硬盘B-临时文件Thediskcontainsanuncleanfile......
  • Red Hat Enterprise Linux release 8.0 (Ootpa)-添加交换分区swap
    添加交换分区:向您的系统添加一个额外的交换分区567MiB.交换分区应在系统启动时自动加载。不要删除或以任何方式改动系统上的任何现有分换分区。   1、fdisk-l查看......
  • 1.10 高级语法_类和对象 类的创建和类的对象实例化调用
    #类的创建和类的对象实例化调用(类中的函数叫方法)classGirl:#类(别)#创建类def__init__(self,hair,name,age):self.hair=hair......
  • 04mORMot如何建表时,创建索引?
    TSQLDiaper=class(TSQLRecord)privatefSerialNumber:RawUTF8;fModel:TSQLDiaperModel;fBaby:TSQLBaby;publishedpropertySerialNumber:......
  • Red Hat Enterprise Linux release 8.0 (Ootpa)-创建协作目录
      [root@servera~]#mkdir/home/managers [root@servera~]#chgrpsysmgrs/home/managers/[root@servera~]#ls-ld/home/managers/drwxr-xr-x.2rootsysm......
  • Vue3 Vite3 多环境配置 - 基于 vite 创建 vue3 全家桶项目(续篇)
    在项目或产品的迭代过程中,通常会有多套环境,常见的有:dev:开发环境sit:集成测试环境uat:用户接收测试环境pre:预生产环境prod:生产环境环境之间配置可能存在差异,如接口地......
  • python 创建虚拟环境
    1、安装virtualenv库pipinstallvirtualenv2、创建虚拟环境virtualenv[虚拟环境名称]virtualenvvenv#如果不想使用系统的包,加上–no-site-packeages参数v......
  • 设计模式 创建型
    Java设计模式学习本文作者:MrBird本文链接:http://mrbird.cc/Java设计模式.html本文仅为个人学习整理转载创建型模式简单工厂模式简单工厂模式严格意义上来说,并不......
  • MySQL索引底层:B+树详解
    前言当我们发现SQL执行很慢的时候,自然而然想到的就是加索引。对于范围查询,索引的底层结构就是B+树。今天我们一起来学习一下B+树哈~公众号:「捡田螺的小男孩」树简介、树种类......
  • 多线程创建
    创建多线程的方式一:继承Thread类 创建多线程的方式二:实现Runnable接口 创建多线程的方式三:实现Callable接口  ......