Oracle的表分區(qū)功能通過改善可管理性、性能和可用性,從而為各式應用程序帶來了極大的好處。通常,分區(qū)可以使某些查詢以及維護操作的性能大大提高。此外,分區(qū)還可以極大簡化常見的管理任務,分區(qū)是構建千兆字節(jié)數(shù)據(jù)系統(tǒng)或超高可用性系統(tǒng)的關鍵工具。
分區(qū)功能能夠?qū)⒈、索引或索引組織表進一步細分為段,這些數(shù)據(jù)庫對象的段叫做分區(qū)。每個分區(qū)有自己的名稱,還可以選擇自己的存儲特性。從數(shù)據(jù)庫管理員的角度來看,一個分區(qū)后的對象具有多個段,這些段既可進行集體管理,也可單獨管理,這就使數(shù)據(jù)庫管理員在管理分區(qū)后的對象時有相當大的靈活性。但是,從應用程序的角度來看,分區(qū)后的表與非分區(qū)表完全相同,使用 SQL DML 命令訪問分區(qū)后的表時,無需任何修改。 -
比較能理解的是以下幾個幾種表分區(qū):
1 范圍分區(qū)
每個分區(qū)都由一個分區(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的每一個分區(qū)建立一個獨立的索引
create index IndexTable_index
on IndexTable(name)
global;
--global為全局索引 全局索引可以包含多個分區(qū)的值 局部索引比全局索引容易管理,而全局索引比較快
注意:不能為散列分區(qū) 或者 子分區(qū)創(chuàng)建全局索引。
本文出自:億恩科技【1tcdy.com】
服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|