oracle表分割槽詳解 三

2021-08-25 20:41:13 字數 3891 閱讀 7823

五.復合範圍雜湊分割槽:

這種分割槽是基於範圍分割槽和雜湊分割槽,表首先按某列進行範圍分割槽,然後再按某列進行雜湊分割槽。

create table dinya_test

( transaction_id number primary key,

item_id number(8) not null,

item_description varchar2(300),

transaction_date date

) partition by range(transaction_date)subpartition by hash(transaction_id) subpartitions 3 store in (dinya_space01,dinya_space02,dinya_space03)

( partition part_01 values less than(to_date(『2006-01-01』,』yyyy-mm-dd』)),

partition part_02 values less than(to_date(『2010-01-01』,』yyyy-mm-dd』)),

partition part_03 values less than(maxvalue)

);(5).有關表分割槽的一些維護性操作:

一、新增分割槽

以下**給sales表新增了乙個p3分割槽

alter table sales add partition p3 values less than(to_date('2003-06-01','yyyy-mm-dd'));

注意:以上新增的分割槽界限應該高於最後乙個分割槽界限。

以下**給sales表的p3分割槽新增了乙個p3sub1子分割槽

alter table sales modify partition p3 add subpartition p3sub1 values('complete');

二、刪除分割槽

以下**刪除了p3表分割槽:

alter table sales drop partition p3;

在以下**刪除了p4sub1子分割槽:

alter table sales drop subpartition p4sub1;

注意:如果刪除的分割槽是表中唯一的分割槽,那麼此分割槽將不能被刪除,要想刪除此分割槽,必須刪除表。

三、截斷分割槽

截斷某個分割槽是指刪除某個分割槽中的資料,並不會刪除分割槽,也不會刪除其它分割槽中的資料。當表中即使只有乙個分割槽時,也可 以截斷該分割槽。通過以下**截斷分割槽:

alter table sales truncate partition p2;

通過以下**截斷子分割槽:

alter table sales truncate subpartition p2sub2;

四、合併分割槽

合併分割槽是將相鄰的分割槽合併成乙個分割槽,結果分割槽將採用較高分割槽的界限,值得注意的是,不能將分割槽合併到界限較低的分 區。以下**實現了p1 p2分割槽的合併:

alter table sales merge partitions p1,p2 into partition p2;

五、拆分分割槽

拆分分割槽將乙個分割槽拆分兩個新分割槽,拆分後原來分割槽不再存在。注意不能對hash型別的分割槽進行拆分。

alter table sales sblit partition p2 at(to_date('2003-02-01','yyyy-mm-dd')) into (partition p21,partition p22);

六、接合分割槽(coalesca)

結合分割槽是將雜湊分割槽中的資料接合到其它分割槽中,當雜湊分割槽中的資料比較大時,可以增加雜湊分割槽, 然後進行接合,值得注意的是,接合分割槽只能用於雜湊分割槽中。通過以下**進行接合分割槽:

alter table sales coalesca partition;

七、重新命名表分割槽

以下**將p21更改為p2

alter table sales rename partition p21 to p2;

八、相關查詢

跨分割槽查詢

select sum( *) from

(select count(*) cn from t_table_ss partition (p200709_1)

union all

select count(*) cn from t_table_ss partition (p200709_2)

);查詢表上有多少分割槽

select * from user_tab_partitions where table_name='tablename'

查詢索引資訊

select object_name,object_type,tablespace_name,sum(value)

from v$segment_statistics

where statistic_name in ('physical reads','physical write','logical reads')and object_type='index'

group by object_name,object_type,tablespace_name

order by 4 desc

--顯示資料庫所有分割槽表的資訊:

select * from dba_part_tables

--顯示當前使用者可訪問的所有分割槽表資訊:

select * from all_part_tables

--顯示當前使用者所有分割槽表的資訊:

select * from user_part_tables

--顯示表分割槽資訊 顯示資料庫所有分割槽表的詳細分割槽資訊:

select * from dba_tab_partitions

--顯示當前使用者可訪問的所有分割槽表的詳細分割槽資訊:

select * from all_tab_partitions

--顯示當前使用者所有分割槽表的詳細分割槽資訊:

select * from user_tab_partitions

--顯示子分割槽資訊 顯示資料庫所有組合分割槽表的子分割槽資訊:

select * from dba_tab_subpartitions

--顯示當前使用者可訪問的所有組合分割槽表的子分割槽資訊:

select * from all_tab_subpartitions

--顯示當前使用者所有組合分割槽表的子分割槽資訊:

select * from user_tab_subpartitions

--顯示分割槽列 顯示資料庫所有分割槽表的分割槽列資訊:

select * from dba_part_key_columns

--顯示當前使用者可訪問的所有分割槽表的分割槽列資訊:

select * from all_part_key_columns

--顯示當前使用者所有分割槽表的分割槽列資訊:

select * from user_part_key_columns

--顯示子分割槽列 顯示資料庫所有分割槽表的子分割槽列資訊:

select * from dba_subpart_key_columns

--顯示當前使用者可訪問的所有分割槽表的子分割槽列資訊:

select * from all_subpart_key_columns

--顯示當前使用者所有分割槽表的子分割槽列資訊:

select * from user_subpart_key_columns

--怎樣查詢出oracle資料庫中所有的的分割槽表

select * from user_tables a where a.partitioned='yes'

--刪除乙個表的資料是

truncate table table_name;

--刪除分割槽表乙個分割槽的資料是

alter table table_name truncate partition p5;

Oracle表分割槽詳解

此文從以下幾個方面來整理關於分割槽表的概念及操作 1.表空間及分割槽表的概念 2.表分割槽的具體作用 3.表分割槽的優缺點 4.表分割槽的幾種型別及操作方法 5.對錶分割槽的維護性操作.一 表空間及分割槽表的概念 表空間 是乙個或多個資料檔案的集合,所有的資料物件都存放在指定的表空間中,但主要存放的...

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

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

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

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