row movement // 分區表

Alter table table_name enable row movement;oracle

通查在三種情景下,須要啓用row movement性能

1:分區表spa

當咱們容許分區表的分區鍵是可更新的時候,若是分區鍵的更新致使當前修改的數據條目須要移動到其餘分區,此時就會發生rowid的改變.net

2:閃回操做對象

在閃回操做時,咱們一樣須要開啓表的row movement特性。blog

3:回收空間get

在收縮空間時,也會形成行的移動.hash

Shrink space操做(without  compact)會致使全部已經打開的遊標失效,所以須要謹慎使用.it

select owner, row_movement from dba_tables where table_name = 'A';  查看當前table 的 row 狀態io

1、建立分區表
分區表分爲四類:一、範圍分區表 二、列表分區表 三、哈希分區表 四、組合分區表

CREATE TABLE range_example(
     range_key_column DATE,
     DATA VARCHAR2(20),
     ID integer
 ) PARTITION BY RANGE(range_key_column)
 (
     PARTITION part01 VALUES LESS THAN (TO_DATE('2008-07-1 00:00:00','yyyy-mm-dd hh24:mi:ss')) TABLESPACE tbs01,
     PARTITION part02 VALUES LESS THAN (TO_DATE('2008-08-1 00:00:00','yyyy-mm-dd hh24:mi:ss')) TABLESPACE tbs02,
     PARTITION part03 VALUES LESS THAN (TO_DATE('2008-09-1 00:00:00','yyyy-mm-dd hh24:mi:ss')) TABLESPACE tbs03
);

CREATE TABLE list_example(
     dname VARCHAR2(10),
     DATA VARCHAR2(20)
)PARTITION BY LIST(dname)
(
      PARTITION part01 VALUES('ME','PE','QC','RD'),
      PARTITION part02 VALUES('SMT','SALE')
);

CREATE TABLE hash_example(
      hash_key_column DATE,
      DATA VARCHAR2(20)
) PARTITION BY HASH(hash_key_cloumn)
(
     PARTITION part01 ,
     PARTITION part02
)

 

CREATE TABLE range_hash_example(
 range_column_key DATE,
 hash_column_key INT,
 DATA VARCHAR2(20)
)
PARTITION BY RANGE(range_column_key)
SUBPARTITION BY HASH(hash_column_key) SUBPARTITIONS 2
(
   PARTITION part_1 VALUES LESS THAN (TO_DATE('2008-08-01','yyyy-mm-dd'))(
      SUBPARTITION part_1_sub_1,
      SUBPARTITION part_1_sub_2,
      SUBPARTITION part_1_sub_3
   ),
   PARTITION part_2 VALUES LESS THAN (TO_DATE('2008-09-01','yyyy-mm-dd'))(
      SUBPARTITION part_2_sub_1,
      SUBPARTITION part_2_sub_2
   )
);

普通錶轉爲分區表

 

分區表

優勢:

a.改善查詢性能:對分區對象的查詢能夠僅搜索本身關心的分區,提升檢索速度。

b.加強可用性:若是表的某個分區出現故障,表在其餘分區的數據仍然可用。

c.維護方便:若是表的某個分區出現故障,須要修復數據,只修復該分區便可。

d.均衡I/O:能夠把不一樣的分區映射到磁盤以平衡I/O,改善整個系統性能。

 

缺點:

分區表相關,已經存在的表沒有方法能夠直接轉化爲分區表。不過oracle提供了在線重定義表的功能

相關文章
相關標籤/搜索