Oracle11g表分割槽思考過程

2021-07-26 09:01:33 字數 3329 閱讀 7326

環境: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 ...