環境:centos6.5 64bit
oracle11gr2
--第一步:建立表分割槽--
--建立第乙個表空間
create tablespace user_part_1
logging
datafile '/opt/oracle/data/user_part_1.dbf'
size
50m --初始值
autoextend on --允許自動擴容
next
50m maxsize 2048m --每次擴大50m,最大2048m
extent management local;
--管理方式,有本地管理(local)和資料字典管理(dictionary)
--建立第二個表空間
create tablespace user_part_2
logging
datafile '/opt/oracle/data/user_part_2.dbf'
size
50m
autoextend on
next
50m maxsize 2048m
extent management local;
--檢視本使用者系統許可權
select * from user_sys_privs
--建立表分割槽(按照範圍)
create
table user_information(
userid integer
primary
key,
name varchar2(255)
)partition by range(userid)(
partition user_part_1 values less than (100) tablespace user_part_1,
partition user_part_2 values less than (200) tablespace user_part_2
)--建立好分割槽表之後,往user_information表插入資料,無法插入》=200的資料
insert
into user_information(userid, name) values(199, '小明') --成功
insert
into user_information(userid, name) values(200, '小紅') --失敗
--第二步:我發現以上方式不能插入》=200的資料,那我要是想插入怎麼辦呢?--
--建立第三個表空間
create tablespace user_part_3
logging
datafile '/opt/oracle/data/user_part_3.dbf'
size
50m
autoextend on
next
50m maxsize 2048m
extent management local;
--建立第四個表空間
create tablespace user_part_4
logging
datafile '/opt/oracle/data/user_part_4.dbf'
size
50m
autoextend on
next
50m maxsize 2048m
extent management local;
--往user_information表新增表空間
alter
table user_information add partition user_part_3 values less than (maxvalue) tablespace user_part_3
--這樣,我就可以插入很大的資料了,其儲存在第三個表空間
insert
into user_information values(200, '小東') --成功
--分割槽界限必須調整為高於最後乙個分割槽界限,所以不能再新增表分割槽了
alter
table user_information add partition user_part_4 values less than (300) tablespace user_part_4 --失敗
--第三步:手動表分割槽實在太麻煩了,有沒有辦法自動表分割槽呢?--
--oracle11g以後才能實現
--新建乙個表
create
table user_info(
user_id integer,
name varchar2(255),
birthday date
)partition by range(birthday) interval(numtoyminterval(1, 'month'))( --根據月,乙個月一次
partition user_part_4 values less than (to_date('2017-01-01', 'yyyy-mm-dd')) tablespace user_part_4
)
–檢視partition
–此時有乙個partition,名為user_part_4,因為沒插入資料
--插入第一條資料
insert
into user_info values(1, '小東', to_date('2016-12-12', 'yyyy-mm-dd'))
–檢視partition
–此時有乙個partition,名為user_part_4,因為插入的資料小於2017-01-01
--插入第二條資料
insert
into user_info values(2, '小龍', to_date('2017-01-01', 'yyyy-mm-dd'))
–此時有兩個partition,因為此時插入的資料birthday大於等於2017-01-01
oracle11g分割槽表
1按需建立分割槽,可以自動擴充套件分割槽 create table f sales sales amt number,d date date partition by range d date interval numtoyminterval 1,year partition p1 values l...
Oracle 11g筆記 分割槽表
一 分割槽表 分割槽技術,oracle允許把乙個大表分成幾部分,每部分叫乙個分割槽,然後把每個部分放在不同的物理磁碟,以提高整個資料庫的效能。每個分割槽還可以再分成幾份,這樣產生的分割槽叫子分割槽 subpartition 分割槽表邏輯上還是乙個整體。1 優點 1 分割槽技術使資料庫的可管理性變得更...
oracle 11g 按時間建分割槽表
假如已建立的表不能再建立分割槽,只有重新建分割槽表,然後將資料匯入表中,再將表名改為原表名 1.我的原表名為monitor data,現在建臨時分割槽表 create table gps monitor data tmp data id char 36 byte not null,equip id ...