oracle 分區表

來源:互聯網
上載者:User

標籤:

分區表用途

分區表通過對分區列的判斷,把分區列不同的記錄,放到不同的分區中。分區完全對應用透明。Oracle的分區表可以包括多個分區,每個分區都是一個獨立的段(SEGMENT),可以存放到不同的資料表空間中。查詢時可以通過查詢表來訪問各個分區中的資料,也可以通過在查詢時直接指定分區的方法來進行查詢。

分區表的優點:

(1)由於將資料分散到各個分區中,減少了資料損毀的可能性;

(2)可以對單獨的分區進行備份和恢複;

(3)可以將分區映射到不同的物理磁碟上,來分散IO;

(4)提高可管理性、可用性和效能。

資料量大的表,一般大於2GB;資料有明顯的界限劃分;對於Long和Long Raw類型列不能使用分區。

 分區表類型

一般包括定界分割,散列分區,列表分區、複合分區(範圍-散列分區,範圍-列表分區)、間隔分區和系統磁碟分割等。

 定界分割

定界分割根據資料庫表中某一欄位的值的範圍來劃分分區。

【文法】

在Create Table語句後增加

PARTITION BY RANGE(column_name)

(

PARTITION part1 VALUES LESS THAN (range1) [TABLESPACE tbs1],

PARTITION part2 VALUES LESS THAN (range2) [TABLESPACE tbs2],

           ....

PARTITION partN VALUES LESS THAN (MAXVALUE) [TABLESPACE tbsN]

);

 

【說明】

MAXVALUE:當分區列值都不在設定的範圍內時,新增資料將到這個分區中

 

【樣本】

-- 建立表,並設定分區

create table myemp

( empno number(4) primary key,

  ename varchar2(10),

  hiredate date,

  sal   number(7,2),

  deptno number(2)

)

partition by range(sal)

(

  partition p1 values less than(1000),

  partition p2 values less than(2000),

  partition p3 values less than(maxvalue)

);

 

-- 插入資料

insert into myemp(empno,ename,hiredate,sal,deptno)

select empno,ename,hiredate,sal,deptno from emp;

 

-- 查看工資1000-2000的資料

select * from myemp partition(p2);

 

-- 刪除工資小於1000的資料

delete from myemp partition(p1);

 

-- 查看資料

select * from myemp;

 

 

列表分區

列表分區明確指定了根據某欄位的某個具體值進行分區,而不是像定界分割那樣根據欄位的值範圍來劃分的。

【文法】

在Create Table語句後增加

PARTITION BY LIST(column_name)

(

PARTITION part1 VALUES (values_list1),

PARTITION part2 VALUES (values_list2),

           ....

PARTITION partN VALUES (DEFAULT)

);

其中:column_name是以其為基礎建立列表分區的列。

      part1...partN是分區的名稱。

      values_list是對應分區的分區索引值的列表。

      DEFAULT關鍵字允許儲存前面的分區不能儲存的記錄。

 

 

【樣本】

-- 建立表,並設定分區

create table myemp2

( empno number(4) primary key,

  ename varchar2(10),

  hiredate date,

  sal   number(7,2),

  deptno number(2)

)

partition by list(deptno)

(

  partition dept10 values(10),

  partition dept20 values(20),

  partition dept30 values(30),

  partition deptx  values(default)

);

 

-- 插入資料

insert into myemp2(empno,ename,hiredate,sal,deptno)

select empno,ename,hiredate,sal,deptno from emp;

 

-- 查看部門20的資料

select * from myemp2 partition(dept20);

 

-- 刪除部門30的資料

delete from myemp2 partition(dept30);

 

-- 查看資料

select * from myemp2;

 

oracle 分區表

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.