摘要:本篇文章介紹了Oracle數據庫的新特性—分區管理,並用例子說明使用方法。
一、 分區概述:
為了簡化數據庫大表的管理,ORACLE8推出了分區選項。分區將表分離在若干不同的表空間上,用分而治之的方法來支撐無限膨脹的大表,給大表在物理一級的可管理性。將大表分割成較小的分區可以改善表的維護、備份、恢復、事務及查詢性能。針對當前社保及電信行業的大量日常業務數據,可以推薦使用Oracle8的該選項。
二、分區的優點:
1 、增強可用性:如果表的一個分區由於系統故障而不能使用,表的其余好的分區仍然可以使用;
2 、減少關閉時間:如果系統故障只影響表的一部分分區,那麼只有這部分分區需要修復,故能比整個大表修復花的時間更少;
3 、維護輕松:如果需要重建表,獨立管理每個分區比管理單個大表要輕松得多;
4 、均衡I/O:可以把表的不同分區分配到不同的磁盤來平衡I/O改善性能;
5 、改善性能:對大表的查詢、增加、修改等操作可以分解到表的不同分區來並行執行,可使運行速度更快;
6 、分區對用戶透明,最終用戶感覺不到分區的存在。
三、分區的管理:
1 、分區表的建立:
某公司的每年產生巨大的銷售記錄,DBA向公司建議每季度的數據放在一個分區內,以下示范的是該公司1999年的數據(假設每月產生30M的數據),操作如下:
STEP1、建立表的各個分區的表空間:
CREATE TABLESPACE ts_sale1999q1
DATAFILE ‘/u1/oradata/sales/sales1999_q1.dat’
SIZE 100M
DEFAULT STORAGE (INITIAL 30m NEXT 30m MINEXTENTS 3 PCTINCREASE 0)
CREATE TABLESPACE ts_sale1999q2
DATAFILE ‘/u1/oradata/sales/sales1999_q2.dat’
SIZE 100M
DEFAULT STORAGE (INITIAL 30m NEXT 30m MINEXTENTS 3 PCTINCREASE 0)
CREATE TABLESPACE ts_sale1999q3
DATAFILE ‘/u1/oradata/sales/sales1999_q3.dat’
SIZE 100M
DEFAULT STORAGE (INITIAL 30m NEXT 30m MINEXTENTS 3 PCTINCREASE 0)
CREATE TABLESPACE ts_sale1999q4
DATAFILE ‘/u1/oradata/sales/sales1999_q4.dat’
SIZE 100M
DEFAULT STORAGE (INITIAL 30m NEXT 30m MINEXTENTS 3 PCTINCREASE 0)
STEP2、建立基於分區的表:
CREATE TABLE sales
(invoice_no NUMBER,
...
sale_date DATE NOT NULL )
PARTITION BY RANGE (sale_date)
(PARTITION sales1999_q1
VALUES LESS THAN (TO_DATE(‘1999-04-01’,’YYYY-MM-DD’)
TABLESPACE ts_sale1999q1,
PARTITION sales1999_q2
VALUES LESS THAN (TO_DATE(‘1999-07-01’,’YYYY-MM-DD’)
TABLESPACE ts_sale1999q2,
PARTITION sales1999_q3
VALUES LESS THAN (TO_DATE(‘1999-10-01’,’YYYY-MM-DD’)
TABLESPACE ts_sale1999q3,
PARTITION sales1999_q4
VALUES LESS THAN (TO_DATE(‘2000-01-01’,’YYYY-MM-DD’)
TABLESPACE ts_sale1999q4 );