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語句就可以訪問的操作某乙個分割槽而不是整個表,因而提高管理的效率。分割槽對於資料倉儲應用程式非常有效,因為他們常常儲存...