分割槽元素: 字串, 日期時間或間隔文字, 數字或 maxvalue
檢視表的分割槽,利用user_tab_partitions
select table_name,partition_name from user_tab_partitions where table_name='stud';
1:範圍分割槽
--按行分割槽,
create table stud(
sid number primary key,
age number,
birthday date,
*** varchar2(6)
)partition by range(sid)(
partition part1 values less than(10000),
partition part2 values less than(20000),
partition part3 values less than(maxvalue)
);--按時間分割槽
create table stud(
sid number primary key,
age number,
birthday date,
*** varchar2(6)
)partition by range(birthday)(
partition part1 values less than(to_date('19950101','yyyymmdd')),
partition part2 values less than(to_date('19960101','yyyymmdd')),
partition part3 values less than(to_date('19970101','yyyymmdd')),
partition part4 values less than(maxvalue)
);--hash分割槽
通過hash(引數)來分割槽,分割槽數量盡量為2的n次方,這樣各分割槽資料分布更均勻
create table stud(
sid number primary key,
age number,
birthday date,
*** varchar2(6)
)partition by hash(sid)
(partition p1,
partition p2,
partition p3,
partition p4
);--list分割槽
在分割槽時確定分割槽可能存在的值,依賴不在是乙個範圍,而是乙個確定的值,如果實在無法完全確定
分割槽依賴列的所有可能值,可以用default關鍵字把剩餘的情況歸為一類
create table stud(
sid number primary key,
age number,
birthday date,
*** varchar2(6)
)partition by list(***)
(partition p1 values('男'),
partition p2 values('女'),
partition p3 values('其他'),
partition p4 values(default)
);--混合分割槽
rang+hash
create table stud(
sid number primary key,
age number,
birthday date,
*** varchar2(6)
)partition by range(sid) subpartition by hash(age)
(partition p1 values less than(10),
partition p2 values less than(20),
partition p3 values less than(30),
partition p4 values less than(maxvalue)
);declare
p*** varchar2(6);
random_chance number;
begin
for sid in 1..40 loop
random_chance:=dbms_random.value(0,100);
if(random_chance<40) then
p***:='女';
elsif(random_chance<90) then
p***:='男';
else
p***:='其他';
end if;
insert into stud(sid,***) values(sid,p***);
end loop;
commit;
end;
--混合分割槽
range-list
create table stud(
sid number primary key,
age number,
birthday date,
*** varchar2(6)
)partition by range(sid) subpartition by list(***)
(partition p1 values less than(10) tablespace tablespace_102
(subpartition p1sub1 values('男'),
subpartition p1sub2 values('女'),
subpartition p1sub3 values('其他')
),partition p2 values less than(20) tablespace tablespace_102
(subpartition p2sub1 values('男'),
subpartition p2sub2 values('女'),
subpartition p2sub3 values('其他')
),partition p3 values less than(30) tablespace tablespace_102
(subpartition p3sub1 values('男'),
subpartition p3sub2 values('女'),
subpartition p3sub3 values('其他')
),partition p4 values less than(41) tablespace tablespace_102
(subpartition p4sub1 values('男'),
subpartition p4sub2 values('女'),
subpartition p4sub3 values('其他')));
檢視指定分割槽資料:
select * from stud partition(p1/p2/p3/p4);
select * from stud subpartition(p1sub1/p1sub2/p1sub3...);
create table dep(deptno char(4) primary key);
insert into dep values('0001');
create table stud(
sid number primary key,
age number,
birthday date,
*** varchar2(6)
);alter table stud add(deptno char(4) constraint fk_stud_dept_deptno references dep(deptno));
insert into stud(sid,deptno,***) values(45,'0001','男');
在沒有指定maxvalue的表中增加分割槽(原理通過id number分割槽)
alter table table_name add partition p_name values less than(50) tablespace tablespacename;
刪除分割槽
alter table table_name drop partition p_name;
修改分割槽名(p1->p2)
alter table table_name rename partition p1 to p2;
移動分割槽資料到表空間(tablespace_u101)
alter table tablename move partition p1 to tablespace tablespace_u101;
分割槽拆分(拆分點為60)
Oracle表分割槽之操縱已分割槽的表
oracle表分割槽之操縱已分割槽的表 分割槽維護操作有 新增分割槽 刪除分割槽 截斷分割槽 合併分割槽 拆分分割槽 www.2cto.com 1 新增分割槽 在最後乙個分割槽之後新增新分割槽 sql alter table sales add partition p4 values less th...
oracle表分割槽設計 ORACLE 分割槽表的設計
分割槽表的概念 分割槽致力於解決支援極大表和索引的關鍵問題。它採用他們分解成較小和易於管理的稱為分割槽的片 piece 的方法。一旦分割槽被定義,sql語句就可以訪問的操作某乙個分割槽而不是整個表,因而提高管理的效率。分割槽對於資料倉儲應用程式非常有效,因為他們常常儲存和分析巨量的歷史資料。分割槽表...
oracle表分割槽設計 ORACLE分割槽表的設計
分割槽表的概念 分割槽致力於解決支援極大表和索引的關鍵問題。它採用他們分解成較小和易於管理的稱為分割槽的片 piece 的方法。一旦分割槽被定義,sql語句就可以訪問的操作某乙個分割槽而不是整個表,因而提高管理的效率。分割槽對於資料倉儲應用程式非常有效,因為他們常常儲存和分析巨量的歷史資料。分割槽表...