1、範圍分割槽(range)
create table range_part_tab
(id number,
deal_date date,
area_code number,
contents varchar2(4000)
)partition by range (deal_date)
(partition p201201 values less than (to_date(' 2012-02-01 00:00:00', 'syyyy-mm-dd hh24:mi:ss', 'nls_calendar=gregorian'))
partition p201202 values less than (to_date(' 2012-03-01 00:00:00', 'syyyy-mm-dd hh24:mi:ss', 'nls_calendar=gregorian'))
partition p201203 values less than (to_date(' 2012-04-01 00:00:00', 'syyyy-mm-dd hh24:mi:ss', 'nls_calendar=gregorian'))
partition p_max values less than (maxvalue)
);2、雜湊分割槽(hash)
create table hash_part_tab(id number,deal_date date,area_code number,contents varchar2(4000))
partition by hash(deal_date)
partitions 12
;3、列表分割槽(list)
create table list_part_tab(id number,deal_date date,area_code number,contents varchar2(4000))
partition by list(area_code)
(partition p_591 values(591),
partition p_592 values(592),
partition p_593 values(593),
partition p_594 values(594),
partition p_595 values(595),
partition p_596 values(596),
partition p_597 values(597),
partition p_598 values(598),
partition p_599 values(599),
partition p_other values(default)
);4、組合分割槽
比如oracle 11g以前有範圍-雜湊組合分割槽、範圍-列表組合分割槽;oracle 11g,還提供了range-range、list-range、list-hash、list-list這4種。
create table range_list_part_tab(id number,deal_date date,area_code number,contents varchar2(4000))
partition by range(deal_date)
subpartition by list(area_code)
subpartition template
(subpartition p_591 values(591),
subpartition p_592 values(592),
subpartition p_593 values(593),
subpartition p_594 values(594),
subpartition p_595 values(595),
subpartition p_596 values(596),
subpartition p_597 values(597),
subpartition p_598 values(598),
subpartition p_599 values(599),
subpartition p_other values(default))(
partition p1 values less than(to_date('2012-02-01','yyyy-mm-dd')),
partition p2 values less than(to_date('2012-03-01','yyyy-mm-dd')),
partition p3 values less than(to_date('2012-04-01','yyyy-mm-dd')),
partition p4 values less than(to_date('2012-05-01','yyyy-mm-dd')),
partition p5 values less than(to_date('2012-06-01','yyyy-mm-dd')),
partition p6 values less than(to_date('2012-07-01','yyyy-mm-dd')),
partition p7 values less than(to_date('2012-08-01','yyyy-mm-dd')),
partition p8 values less than(to_date('2012-09-01','yyyy-mm-dd')),
partition p9 values less than(to_date('2012-10-01','yyyy-mm-dd')),
partition p10 values less than(to_date('2012-11-01','yyyy-mm-dd')),
partition p11 values less than(to_date('2012-12-01','yyyy-mm-dd')),
partition p12 values less than(to_date('2013-01-01','yyyy-mm-dd')),
partition p_max values less than(maxvalue)
);5、對分割槽表的操作
select * from range_part_tab partition(p_max);
alter table range_part_tab drop partition p_max;
alter table range_part_tab add partition p201303 values less than (to_date(' 2013-04-01 00:00:00', 'syyyy-mm-dd hh24:mi:ss', 'nls_calendar=gregorian'))
alter table range_part_tab add partition p_max values less than (maxvalue);
alter table range_part_tab truncate partition p_max;
--分割槽交換,可以實現普通表和分割槽表的某個分割槽之間資料的相互交換,執行一次交換一次。這兩個表字段必須是完全一樣。
create table mid_table as
select * from range_part_tab where 1=2;
alter table range_part_tab exchange partition p201303 with table mid_table;
--分割槽切割
alter table range_part_tab split partition p_max at (to_date('2013-05-01','yyyy-mm-dd')) into (partition p201304,partition p_max);
--分割槽合併
alter table range_part_tab merge partitions p201304,p_max into partition p_max;
Oracle 分割槽表
我們知道在資料庫中,當一張表的資料量增多時,資料的查詢就會變慢,從而影響應用程式的效能。這時我們應該考慮將表分割槽,表分割槽後在邏輯上仍然屬於一張表,只是在物理上儲存在多個檔案中。範圍分割槽將資料基於範圍對映到每乙個分割槽,這個範圍是你在建立分割槽時指定的分割槽鍵決定的。這種分割槽方式是最為常用的,...
oracle表分割槽設計 ORACLE 分割槽表的設計
分割槽表的概念 分割槽致力於解決支援極大表和索引的關鍵問題。它採用他們分解成較小和易於管理的稱為分割槽的片 piece 的方法。一旦分割槽被定義,sql語句就可以訪問的操作某乙個分割槽而不是整個表,因而提高管理的效率。分割槽對於資料倉儲應用程式非常有效,因為他們常常儲存和分析巨量的歷史資料。分割槽表...
oracle表分割槽設計 ORACLE分割槽表的設計
分割槽表的概念 分割槽致力於解決支援極大表和索引的關鍵問題。它採用他們分解成較小和易於管理的稱為分割槽的片 piece 的方法。一旦分割槽被定義,sql語句就可以訪問的操作某乙個分割槽而不是整個表,因而提高管理的效率。分割槽對於資料倉儲應用程式非常有效,因為他們常常儲存和分析巨量的歷史資料。分割槽表...