根據分區鍵自動選擇分區,支持插入、更新及刪除等操做。
分區鍵:性能
一個表最多由1024K-1個分區構成。任何表都可以被分區。可採用壓縮形式存儲表及分區表。spa
CREATE TABLE ex1( range_key_column date, data varchar2(20) ) PARTITION BY RANGE (range_key_column) //指定分區鍵 ( PARTITION p1 VALUES LESS THEN (to_date('01/01/2015','dd/mm/yyyy')), PARTITION p2 VALUES LESS THEN (to_date('01/01/2016','dd/mm/yyyy')), PARTITION p1 VALUES LESS THEN (MAXVALUE) ); select table_name,partitioning_type,partition_count,status from user_part_tables where table_name='ex1' select table_name,partition_name,tablespace_name from user_tab_partitions where table_name='ex1'
也能夠將子分區放在不一樣的表空間下,對於減小IO爭用有好處。code
根據離散的值列表來指定一行位於哪一個分區。索引
CREATE TABLE ex2( state_name varchar2(20), data varchar2(20) ) PARTITION BY LIST(state_name)( PARTITION p1 values ('New York','Virginia'), PARTITION p2 values ('California','Oregon'), PARTITION p3 values ('Illionis','Texas') ); select * from ex2 partition(p1); alter table ex2 add partition p4 values(default); // 一旦列表分區中有一個default分區,就不能再向這個表中增長更多的分區了。此時必須先刪除default分區,添加新分區後再加回default分區。
散列分區是爲了能使數據更好地分佈在多個不一樣設備或磁盤上,爲表選擇的散列鍵應當是惟一的一個列或一組列,或者至少有足夠多的相異值。hash
CREATE TABLE ex3( hash_key date, data varchar2(20) ) PARTITION BY HASH(hash_key)( PARTITION p1 tablespace tbs1, PARTITION p2 tablespace tbs2, PARTITION p3 tablespace tbs3, PARTITION p4 tablespace tbs4 ); // 散列分區,沒法控制數據行最終放在哪一個分區中 // 改變分區個數,數據會在全部分區中從新分佈,向一個散列中增長或刪除一個分區時,將致使全部數據都重寫 // 分區數應該是2的冪數,儘可能保證數據均勻分佈 /
上層是區間分區,下層多是散列或列表分區。it
CREATE TABLE ex4( range_key date, hash_key int, data varchar2(20) ) PARTITION BY RANGE(hash_key) SUBPARTITION BY HASH(hash_key) subpartitions 2 ( PARTITION p1 VALUES LESS THEN (to_date('01/01/2015','dd/mm/yyyy'))( SUBPARTITION p1s1, SUBPARTITION p1s2 ) PARTITION p2 VALUES LESS THEN (to_date('01/01/2016','dd/mm/yyyy'))( SUBPARTITION p2s1, SUBPARTITION p2s2 ) );
分區鍵修改致使行跨分區移動(啓用行移動,不要太頻繁)io
select rowid from ex1 where range_key = to_date('31-Dec-2014','dd-mon-yyyy'); alter table ex1 enable row movement; update ex1 sed range_key=to_date('31-Dec-2016','dd-mon-yyyy') where range_key= to_date('31-Dec-2014','dd-mon-yyyy');
Learn Oracle from Oracle Certified Mastertable
pctfree
pctusedast
manageability
availabilitysed