Oracle的分割槽表

2022-07-12 08:45:12 字數 3113 閱讀 2611

oracle允許使用者把乙個表中的所有行分為幾個部分,並將這些部分儲存在不同的位置。被分割槽的表稱為分割槽表,分成的每個部分稱為乙個分割槽。

什麼時候使用分割槽表:

1)   資料量大小超過2gb。

2)   已有的資料和新新增的資料有明顯的界限劃分。

分割槽表的優缺點

優點:1、改善查詢效能:對分割槽物件的查詢可以僅搜尋自己關心的分割槽,提高檢索速度。

2、增強可用性:如果表的某個分割槽出現故障,表在其他分割槽的資料仍然可用;

3、維護方便:如果表的某個分割槽出現故障,需要修復資料,只修復該分割槽即可;

4、均衡i/o:可以把不同的分割槽對映到磁碟以平衡i/o,改善整個系統效能

缺點:分割槽表的分類:

分為範圍分割槽,列表分割槽,雜湊分割槽,復合分割槽,間隔分割槽和虛擬分割槽等。

間隔分割槽和虛擬分割槽是oracle11g的新增特性。

範圍分割槽:

範圍分割槽(range)是應用範圍比較廣的表分割槽方式,它以列的值的範圍作為分割槽得劃分條件,將記錄存放到列值的range分割槽中。

--建立範圍分割槽表

create table students

(stuid number primary key not null,

stuname varchar2(32) not null,

stuage number

)--按照年齡劃分

partition by range(stuage)

(partition p1 values less than(18),

partition p2 values less than(40),

partition p3 values less than(60),

partition p4 values less than(maxvalue)

)--向表中新增資料

insert into students(stuid,stuname,stuage) values(1,'李四',20);

insert into students(stuid,stuname,stuage) values(2,'張帆',16);

insert into students(stuid,stuname,stuage) values(3,'張三',35);

insert into students(stuid,stuname,stuage) values(4,'王八',65);

insert into students(stuid,stuname,stuage) values(5,'張飛',70);

insert into students(stuid,stuname,stuage) values(6,'林白',41)

--查詢年齡在第二個分割槽表中的資料

select *from students partition(p2)

--刪除年齡在第二個分割槽表中的資料

delete from students partition(p2)

注意事項:

(1)一般建立表分割槽時,都會將最後乙個分割槽設定為maxvalue,使其他資料落入此分割槽。一旦需要某一資料時,可以利用拆分分割槽的技術將需要的資料從最後乙個分割槽分離出去,單獨形成乙個分割槽。如果沒有建立足夠大的分割槽,插入的資料超出範圍就會報錯。

(2)如果插入的資料就是分割槽鍵上的值,則該資料落入下一分割槽。

間隔分割槽

間隔分割槽是oracle 11g版本新引入的分割槽方法,是範圍分割槽的一種增強功能,可以實現範圍分割槽的自動化。他的優點為,在不需要建立表時就將所有分割槽劃分清楚。間隔分割槽隨著資料的增加會劃分更多的分割槽,並自動建立新的分割槽。

--在現有表的基礎上建立間隔分割槽(以年齡為劃分區)

create table studentback

partition by range(age)

interval(20)

(partition p1 values less than(18)

)as select *from student

--檢視間隔分割槽自動建立的分割槽名稱

--檢視間隔分割槽表

--以時間為劃分區

create table schoolback

partition by range(birthday)

interval(numtoyminterval(1,'year'))

(partition p1 values less than (to_date('2014-01-01','yyyy/mm/dd')))

as select * from school;

--檢視間隔分割槽自動建立的分割槽名稱

--檢視分割槽資料

Oracle分割槽表

1 範圍分割槽 range create table range part tab id number,deal date date,area code number,contents varchar2 4000 partition by range deal date partition p201...

Oracle 分割槽表

我們知道在資料庫中,當一張表的資料量增多時,資料的查詢就會變慢,從而影響應用程式的效能。這時我們應該考慮將表分割槽,表分割槽後在邏輯上仍然屬於一張表,只是在物理上儲存在多個檔案中。範圍分割槽將資料基於範圍對映到每乙個分割槽,這個範圍是你在建立分割槽時指定的分割槽鍵決定的。這種分割槽方式是最為常用的,...

oracle 的分割槽表

今早一來,同事說分割槽表無法分割槽了 先手動分割槽,alter table add partition 分割槽名稱 values less than to date 時間 yyyy mm dd 我們使用的是範圍分割槽表 查後發現分割槽表中有幾個分割槽與我們自己定義的分割槽命名規則有些不同,這樣可能造...