Oracle的表分區(qū)功能通過改善可管理性、性能和可用性,從而為各式應(yīng)用程序帶來了極大的好處。通常,分區(qū)可以使某些查詢以及維護(hù)操作的性能大大提高。此外,分區(qū)還可以極大簡(jiǎn)化常見的管理任務(wù),分區(qū)是構(gòu)建千兆字節(jié)數(shù)據(jù)系統(tǒng)或超高可用性系統(tǒng)的關(guān)鍵工具。
分區(qū)功能能夠?qū)⒈、索引或索引組織表進(jìn)一步細(xì)分為段,這些數(shù)據(jù)庫對(duì)象的段叫做分區(qū)。每個(gè)分區(qū)有自己的名稱,還可以選擇自己的存儲(chǔ)特性。從數(shù)據(jù)庫管理員的角度來看,一個(gè)分區(qū)后的對(duì)象具有多個(gè)段,這些段既可進(jìn)行集體管理,也可單獨(dú)管理,這就使數(shù)據(jù)庫管理員在管理分區(qū)后的對(duì)象時(shí)有相當(dāng)大的靈活性。但是,從應(yīng)用程序的角度來看,分區(qū)后的表與非分區(qū)表完全相同,使用 SQL DML 命令訪問分區(qū)后的表時(shí),無需任何修改。 -
比較能理解的是以下幾個(gè)幾種表分區(qū):
1 范圍分區(qū)
每個(gè)分區(qū)都由一個(gè)分區(qū)鍵值范圍指定create table RangeTable(
id int primary key,
name varchar(10),
grade int
)
partition by rang(grade)
(
partition part1 values less then(1000) tablespace Part1_tb,
partition part2 values less then(MAXVALUE) tablespace Part2_tb
);
2 列表分區(qū)
create table ListTable(
id int primary key,
name varchar(20),
area varchar(10)
)
partition by list(area)
(
partition part1 values('guangdong','beijing') tablespace Part1_tb,
partition part2 values('shanghai','nanjing') tablespace Part2_tb
);
3 散列分區(qū)
create table HashTable(
id int primary key,
name varchar(20),
grade int
)
partition by hash(grade)
partitions 10
store in(Part1_tb,Part2_tb,Part3_tb)
partition by rang(grade)(
partition part1 tablespace Part1_tb,
partition part2 tablespace Part2_tb
);
4 索引分區(qū)
create index IndexTable_index
on IndexTable(name)
local
(
partition part1 tablespace Part1_tb,
partition part2 tablespace Part2_tb
)--local 告訴Oracle表 IndexTable的每一個(gè)分區(qū)建立一個(gè)獨(dú)立的索引
create index IndexTable_index
on IndexTable(name)
global;
--global為全局索引 全局索引可以包含多個(gè)分區(qū)的值 局部索引比全局索引容易管理,而全局索引比較快
注意:不能為散列分區(qū) 或者 子分區(qū)創(chuàng)建全局索引。
本文出自:億恩科技【mszdt.com】
服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|