oracle表分割槽

2021-08-27 20:14:45 字數 2336 閱讀 1608

1.表空間及分割槽表的概念:

表空間:是乙個或多個檔案的集合,所有的資料物件都存放在指定的表空間中。

分割槽表:當表中的資料不斷增大後就會導致查詢的速度降低,影響整個應用程式的效能,這時就應該考慮對錶進行分割槽。表分割槽後,邏輯上仍然是一張完整的表,只是表中的資料在物理上存放到多個表空間(物理檔案)上,這樣查詢資料是,不至於每次都掃瞄整張表。

2.分割槽功能能將表、索引或索引組織表進一步細分為段,這些資料庫物件的段叫做分割槽。每個分割槽有自己的名稱,還可以選擇自己的儲存特性。從資料庫管理員的角度來看,乙個分割槽後的物件具有多個段,這些段既可以集體管理,也可以單獨管理,這就使資料庫管理員在管理分割槽後的物件時有相當大的靈活性。但是,對於應用程式而言,分割槽後的表與分分割槽的表完全相同,使用sql dml命令訪問時無需修改。

3.什麼情況下會使用表分割槽:

a.表的大小超過2gb.

b.表中包含歷史資料,新的資料被增加到新的分割槽中。

4.表分割槽的幾種型別及操作方法:

a.範圍分割槽,考慮以下規則:

1)每個分割槽都必須有乙個values less子句,指定上限值

2)所有分割槽,除了第乙個,都會有乙個隱式的下限值,就是前乙個分割槽的上限值

3)在最高分割槽中,使用maxvalue代表乙個不確定的值。

例子一:

create table customer(

customer_id number not null primary key,

order_date    date,

//按大小分割槽

partition by range (customer_id)

//按時間分割槽

partition by range(order_date)

partition ord_act_part01 values less than (to_date('01- may -2003','dd-mon-yyyy')) tablespaceord_ts01,

partition ord_act_part02 values less than (to_date('01-jun-2003','dd-mon-yyyy')) tablespace ord_ts02,

partition ord_act_part02 values less than (to_date('01-jul-2003','dd-mon-yyyy')) tablespace ord_ts03

b.列表分割槽(某列的值只有幾個):

partition  by  list(area)

c.雜湊分割槽(當列的值沒有合適的條件時):

partition by hash(col)

d.組合分割槽

partition by range(sales_date) subpartition by list(status)

partitioon p1 values less then(to_date('2003-01-01','yyyy-mm-dd')) tablespace rptfact209

subpartition p1sub1 values('active') tablespace rptfact209,

有關表分割槽的一些維護操作:

一、新增分割槽:alter table  test add partition p3 values less then(to_date('2003-06-01','yyyy-mm-dd'));新增的分割槽應該高於最後乙個分割槽界限。

二、刪除分割槽:alter tbale test drop partition p3;

三、截斷分割槽:指刪除某個分割槽中的資料,並不會刪除分割槽

alter table test truncate partition p3;

四、合併分割槽:不能講分割槽合併到界限低的分割槽

alter table test merge partition p1,p2 into partition p2;

五、拆分分割槽:不能對hash型別的分割槽進行拆分

alter table test sblit partition p2 at(to_date('2013-01-01','yyyy-mm-dd'))  into (partition p2s1,partition p2s2);

六、重新命名表分割槽:alter table test rename partition p2s1 to p2;

查詢表上有多少個分割槽:

select * from user_tab_partitions where tabel_name = 'tablename';

查詢資料庫所有分割槽表的資訊:

select * from dba_part_tables

查詢當前使用者所有分割槽表的資訊:

select * from user_part_tables

oracle表分割槽設計 ORACLE 分割槽表的設計

分割槽表的概念 分割槽致力於解決支援極大表和索引的關鍵問題。它採用他們分解成較小和易於管理的稱為分割槽的片 piece 的方法。一旦分割槽被定義,sql語句就可以訪問的操作某乙個分割槽而不是整個表,因而提高管理的效率。分割槽對於資料倉儲應用程式非常有效,因為他們常常儲存和分析巨量的歷史資料。分割槽表...

oracle表分割槽設計 ORACLE分割槽表的設計

分割槽表的概念 分割槽致力於解決支援極大表和索引的關鍵問題。它採用他們分解成較小和易於管理的稱為分割槽的片 piece 的方法。一旦分割槽被定義,sql語句就可以訪問的操作某乙個分割槽而不是整個表,因而提高管理的效率。分割槽對於資料倉儲應用程式非常有效,因為他們常常儲存和分析巨量的歷史資料。分割槽表...

oracle表分割槽設計 ORACLE 分割槽表的設計

oracle 分割槽表的設計 分割槽表的概念 分割槽致力於解決支援極大表和索引的關鍵問題。它採用他們分解成較小和易於管理的稱為分割槽的片 piece 的方法。一旦分割槽被定義,sql語句就可以訪問的操作某乙個分割槽而不是整個表,因而提高管理的效率。分割槽對於資料倉儲應用程式非常有效,因為他們常常儲存...