Oracle 分区索引

-- Create table
drop table PERSON2;
create table PERSON2
(
  ID       VARCHAR2(32) not null,
  PID      NUMBER,
  ORDERID  NUMBER,
  DPT      VARCHAR2(4),
  DPC      VARCHAR2(16),
  GDS      VARCHAR2(8),
  XM       VARCHAR2(64),
  XB       VARCHAR2(2),
  MZ       VARCHAR2(32),
  JG       VARCHAR2(64),
  XTLB     VARCHAR2(100),
  QFBS     VARCHAR2(2),
  CSRQ     VARCHAR2(32),
  SFZH     VARCHAR2(60),
  ZZMM     VARCHAR2(16),
  RDTSJ    VARCHAR2(32),
  WHCD     VARCHAR2(32),
  XW       VARCHAR2(8),
  BYSJ     VARCHAR2(32),
  BYXX     VARCHAR2(128),
  SXZY     VARCHAR2(60),
  CJGZSJ   VARCHAR2(32),
  SZJG     VARCHAR2(128),
  SZBM     VARCHAR2(128),
  ZP       BLOB,
  BZ       CLOB,
  ZW       VARCHAR2(128),
  ZWDM     VARCHAR2(4),
  RZSJ     VARCHAR2(32),
  LDBS     VARCHAR2(4),
  ZWGP     VARCHAR2(1),
  JBDY     VARCHAR2(4),
  ZYJB     VARCHAR2(3),
  ZYTC     VARCHAR2(64),
  ZYJSZCDJ VARCHAR2(1),
  ZYJSZCLB VARCHAR2(3),
  ZYJSZC   VARCHAR2(64),
  ZYJSZWLB VARCHAR2(3),
  ZYJSZW   VARCHAR2(64),
  PRSJ     VARCHAR2(32),
  RYJG     VARCHAR2(10),
  BZLX     VARCHAR2(4),
  KZQD     VARCHAR2(2),
  GZZE     NUMBER(10,2),
  RYLB     VARCHAR2(3),
  GWLB     VARCHAR2(2),
  DRQDW    VARCHAR2(128),
  DRSJ     VARCHAR2(60),
  LBSJ     VARCHAR2(32),
  HBYY     VARCHAR2(4),
  HBSJ     VARCHAR2(32),
  HJSJ     VARCHAR2(60),
  HJYY     VARCHAR2(4),
  ZBZT     VARCHAR2(1),
  BY0      VARCHAR2(1),
  BY1      VARCHAR2(2),
  BY2      VARCHAR2(4),
  BY3      VARCHAR2(8),
  BY4      VARCHAR2(16),
  BY5      VARCHAR2(32),
  BY6      VARCHAR2(64),
  BY7      VARCHAR2(128),
  SDCZ     VARCHAR2(10) default 0 not null,
  DIAOLI   VARCHAR2(10) default 0 not null,
  BZZH     VARCHAR2(200),
  TJSJ     VARCHAR2(32),
  QHDM     VARCHAR2(10),
  JYSJ     VARCHAR2(32),
  LTSJ     VARCHAR2(32)
)
partition by range (QHDM)
(
  partition J0 values less than ('220099')
    tablespace DATA_J0
    pctfree 10
    initrans 1
    maxtrans 255
    storage
    (
      initial 64K
      minextents 1
      maxextents unlimited
    ),
  partition CC values less than ('220199')
    tablespace DATA_CC
    pctfree 10
    initrans 1
    maxtrans 255
    storage
    (
      initial 64K
      minextents 1
      maxextents unlimited
    ),
  partition JL values less than ('220299')
    tablespace DATA_JL
    pctfree 10
    initrans 1
    maxtrans 255
    storage
    (
      initial 64K
      minextents 1
      maxextents unlimited
    ),
  partition SP values less than ('220399')
    tablespace DATA_SP
    pctfree 10
    initrans 1
    maxtrans 255
    storage
    (
      initial 64K
      minextents 1
      maxextents unlimited
    ),
  partition LY values less than ('220499')
    tablespace DATA_LY
    pctfree 10
    initrans 1
    maxtrans 255
    storage
    (
      initial 64K
      minextents 1
      maxextents unlimited
    ),
  partition TH values less than ('220599')
    tablespace DATA_TH
    pctfree 10
    initrans 1
    maxtrans 255
    storage
    (
      initial 64K
      minextents 1
      maxextents unlimited
    ),
  partition BS values less than ('220699')
    tablespace DATA_BS
    pctfree 10
    initrans 1
    maxtrans 255
    storage
    (
      initial 64K
      minextents 1
      maxextents unlimited
    ),
  partition SY values less than ('220799')
    tablespace DATA_SY
    pctfree 10
    initrans 1
    maxtrans 255
    storage
    (
      initial 64K
      minextents 1
      maxextents unlimited
    ),
  partition BC values less than ('220899')
    tablespace DATA_BC
    pctfree 10
    initrans 1
    maxtrans 255
    storage
    (
      initial 64K
      minextents 1
      maxextents unlimited
    ),
  partition YB values less than ('222499')
    tablespace DATA_YB
    pctfree 10
    initrans 1
    maxtrans 255
    storage
    (
      initial 64K
      minextents 1
      maxextents unlimited
    )
);
-- Create/Recreate primary, unique and foreign key constraints 
alter table PERSON2
  add constraint PK_PERSON2 primary key (ID)
  using index 
  tablespace DATA
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );

  
  
insert into person2 (select * from person where qhdm<='220099')

insert into person2 (select * from person where '220099'<=qhdm and qhdm<='220199')


insert into person2 (select * from person where '220199'<=qhdm and qhdm<='220299')

insert into person2 (select * from person where '220299'<=qhdm and qhdm<='220399')

insert into person2 (select * from person where '220399'<=qhdm and qhdm<='220499')

insert into person2 (select * from person where '220499'<=qhdm and qhdm<='220599')

insert into person2 (select * from person where '220599'<=qhdm and qhdm<='220699')

insert into person2 (select * from person where '220699'<=qhdm and qhdm<='220799')

insert into person2 (select * from person where '220799'<=qhdm and qhdm<='220899')

insert into person2 (select * from person where '222400'<=qhdm and qhdm<='222426')
--全局好使(只能加载区分上QHDM)
CREATE INDEX INX_qhdm_PERSON2 ON PERSON2(qhdm)
  GLOBAL PARTITION BY RANGE(QHDM)(
         partition J0 values less than ('220099') tablespace DATA_J0,
         partition CC values less than ('220199') tablespace DATA_CC,
         partition JL values less than ('220299') tablespace DATA_JL,
         partition SP values less than ('220399') tablespace DATA_SP,
         partition LY values less than ('220499') tablespace DATA_LY,
         partition TH values less than ('220599') tablespace DATA_TH,
         partition BS values less than ('220699') tablespace DATA_BS,
         partition SY values less than ('220799') tablespace DATA_SY,
         partition BC values less than ('220899') tablespace DATA_BC,
         partition YB values less than ('222499') tablespace DATA_YB,
          partition MX values less than (maxvalue) 
  );
  
  drop index INX_TAB_PERSON2
  ------------------------------------------
  --本地索引
  CREATE INDEX INX_PERSON2_BZLX ON PERSON2(BZLX) LOCAL
  CREATE INDEX INX_PERSON2_KZQD ON PERSON2(KZQD) LOCAL
  CREATE INDEX INX_PERSON2_RYJG ON PERSON2(RYJG) LOCAL
  CREATE INDEX INX_PERSON2_RYLB ON PERSON2(RYLB) LOCAL
  CREATE INDEX INX_PERSON2_SFZH ON PERSON2(SFZH) LOCAL
  CREATE INDEX INX_PERSON2_SZBM ON PERSON2(SZBM) LOCAL
  CREATE INDEX INX_PERSON2_SZJG ON PERSON2(SZJG) LOCAL
  

  --s删除本地索引 (23秒)
  drop index INX_PERSON2_BZLX
  drop index INX_PERSON2_KZQD
  drop index INX_PERSON2_RYJG
  drop index INX_PERSON2_RYLB
  drop index INX_PERSON2_SFZH
  drop index INX_PERSON2_SZBM
  drop index INX_PERSON2_SZJG
  
  
--全局索引 未定义表空间
create index person2_glb_bzgl on PERSON2(BZLX) global; 
create index person2_glb_KZQD on PERSON2(KZQD) global; 
create index person2_glb_RYJG on PERSON2(RYJG) global; 
create index person2_glb_RYLB on PERSON2(RYLB) global; 
create index person2_glb_SFZH on PERSON2(SFZH) global; 
create index person2_glb_SZBM on PERSON2(SZBM) global; 
create index person2_glb_SZJG on PERSON2(SZJG) global; 

drop index person2_glb_bzgl
drop index person2_glb_KZQD
drop index person2_glb_RYJG
drop index person2_glb_RYLB
drop index person2_glb_SFZH
drop index person2_glb_SZBM
drop index person2_glb_SZJG


--测试----person的index挪用
create index PERSON2_BZLX2 on PERSON2 (BZLX)
create index PERSON2_KZQD2 on PERSON2 (KZQD)
create index PERSON2_RYJG2 on PERSON2 (RYJG)
create index PERSON2_RYLB2 on PERSON2 (RYLB)
create index PERSON2_SFZH2 on PERSON2 (SFZH)
create index PERSON2_SZBM2 on PERSON2 (SZBM)
create index PERSON2_SZJG2 on PERSON2 (SZJG)


-----组合分区索引 ----测试ing

create index PERSON2_szjg on person2(szjg)
local
(
         partition J0  tablespace DATA_J0,
         partition CC  tablespace DATA_CC,
         partition JL  tablespace DATA_JL,
         partition SP tablespace DATA_SP,
         partition LY  tablespace DATA_LY,
         partition TH  tablespace DATA_TH,
         partition BS  tablespace DATA_BS,
         partition SY  tablespace DATA_SY,
         partition BC  tablespace DATA_BC,
         partition YB  tablespace DATA_YB
 );
 
 drop index person2_szjg2





 

create index idx_person2_szjg on person2(szjg)
local
(
 partition idx_person2_szjg_j0 tablespace data_j0,
 partition idx_person2_szjg_cc tablespace data_cc,
 partition idx_person2_szjg_jl tablespace data_jl,
 partition idx_person2_szjg_sp tablespace data_sp,
 partition idx_person2_szjg_ly tablespace data_ly,
 partition idx_person2_szjg_th tablespace data_th,
 partition idx_person2_szjg_bs tablespace data_bs,
 partition idx_person2_szjg_sy tablespace data_sy,
 partition idx_person2_szjg_bc tablespace data_bc,
 partition idx_person2_szjg_yb tablespace data_yb
);

 

你可能感兴趣的:(oracle)