Oracle琛ㄥ垎鍖哄拰绱㈠紩鍒嗗尯姹囨?/p>
涓轟簡綆鍖栨暟鎹簱澶ц〃鐨勭鐞?渚嬪鍦ㄦ暟鎹粨搴撲腑涓鑸兘鏄疶B綰х殑鏁伴噺綰?ORACLE8浠ュ悗鎺ㄥ嚭浜嗗垎鍖洪夐」.鍒嗗尯灝嗚〃鍒嗙鍦ㄨ嫢浜庝笉鍚岀殑琛ㄧ┖闂翠笂,鐢ㄥ垎鑰屾不涔嬬殑鏂規硶鏉ユ敮鎾戝厓闄愯啫鑳鐨勫ぇ琛?緇勫ぇ琛ㄥ湪鐗╃悊涓綰х殑鍙鐞嗘?灝嗗ぇ琛ㄥ垎鍓叉垚杈冨皬鐨勫垎鍖哄彲浠ユ敼鍠勮〃鐨勭淮鎶ゃ佸浠姐佹仮澶嶃佷簨鍔″強鏌ヨ鎬ц兘銆?/p>
鍒嗗尯鐨勪紭鐐癸細
1銆?nbsp; 澧炲己鍙敤鎬э細濡傛灉琛ㄧ殑涓涓垎鍖虹敱浜庣郴緇熸晠闅滆屼笉鑳戒嬌鐢紝琛ㄧ殑鍏朵綑濂界殑鍒嗗尯浠嶅彲浠ヤ嬌鐢紱
2銆?nbsp; 鍑忓皯鍏抽棴鏃墮棿錛氬鏋滅郴緇熸晠闅滃彧褰卞搷琛ㄧ殑涓閮ㄤ喚鍒嗗尯錛岄偅涔堝彧鏈夎繖閮ㄤ喚鍒嗗尯闇瑕佷慨澶嶏紝鐭胯兘姣旀暣涓ぇ琛ㄤ慨澶嶈姳鐨勬椂闂存洿灝戯紱
3銆?nbsp; 緇存姢杞繪澗錛氬鏋滈渶瑕佸緱寤鴻〃錛岀嫭浜х鐞嗘瘡涓叕鍖烘瘮綆$悊鍗曚釜澶ц〃瑕佽交鏉懼緱澶氾紱
4銆?nbsp; 鍧囪 I/O錛氬彲浠ユ妸琛ㄧ殑涓嶅悓鍒嗗尯鍒嗛厤鍒頒笉鍚岀殑紓佺洏鏉ュ鉤琛/O鏀瑰杽鎬ц兘錛?/p>
5銆?nbsp; 鏀瑰杽鎬ц兘錛氬澶ц〃鐨勬煡璇€佸鍔犮佷慨鏀圭瓑鎿嶄綔鍙互鍒嗚В鍒拌〃鐨勪笉鍚屽垎鍖烘潵騫惰鎵ц錛屽彲浣胯繍琛岄熷害鏇村揩錛屽湪鏁版嵁浠撳簱鐨凾P鏌ヨ鐗瑰埆鏈夌敤銆?/p>
6銆?nbsp; 鍒嗗尯瀵圭敤鎴烽忔槑錛屾渶緇堢敤鎴鋒劅瑙変笉鍒板垎鍖虹殑瀛樺湪銆?/p>
create tablespace dw1
datafile 'D:\oracle\oradata\ora9\dw11.ora' size 50M
create tablespace dw2
datafile 'D:\oracle\oradata\ora9\dw21.ora' size 50M
涓銆佹寜鑼冨洿鍒嗗尯錛氬浐鍚嶆濅箟灝辨槸鎸変竴瀹歳ange鏉ュ垎鍖猴紝鐪嬩笅闈㈢殑渚嬪瓙:
SQL> set linesize 1000
SQL> create table niegc_part
(
part_id integer primary key,
part_date date,
part_dec varchar2(100)
)
partition by range(part_date)
(
partition part_01 values less than(to_date('2006-01-01','yyyy-mm-dd')) tablespace dw1,
partition part_02 values less than(to_date('2007-01-01','yyyy-mm-dd')) tablespace dw2,
partition part_03 values less than(maxvalue) tablespace dw1
);
琛ㄥ凡鍒涘緩銆?/p>
SQL>
SQL> insert into niegc_part values(1,to_date('2005-12-30','yyyy-mm-dd'),'less 20
06-01-01');
宸插垱寤?1 琛屻?/p>
SQL> commit;
鎻愪氦瀹屾垚銆?/p>
SQL> insert into niegc_part values(2,to_date('2006-01-01','yyyy-mm-dd'),'equal 2
007-01-01');
宸插垱寤?1 琛屻?/p>
SQL> commit;
鎻愪氦瀹屾垚銆?/p>
SQL> insert into niegc_part values(3,sysdate,'sysdate');
宸插垱寤?1 琛屻?/p>
SQL> commit;
鎻愪氦瀹屾垚銆?/p>
SQL>
SQL>
SQL> select * from niegc_part partition(part_01);
PART_ID PART_DATE PART_DEC
---------- ---------- ----------------------------------------------------------
1 30-12鏈?05 less 2006-01-01
SQL>
鐩鎬俊鍙瀵筼racle 鏈夌偣鐔?閮借兘鐭ラ亾涓婇潰鐨剅ange鍒嗗尯鐨勬剰鎬濅簡.
涓や釜瀛楁浠ヤ笂鐨剅ange鍒嗗尯澶у悓灝忓紓,璇風湅涓嬮潰鐨勪緥瀛?
create table niegc_part
(
part_id integer primary key,
part_date date,
part_dec varchar2(100)
)
partition by range(part_id,part_date)
(
partition part_01 values less than(1,to_date('2006-01-01','yyyy-mm-dd')) tablespace dw,
partition part_02 values less than(10,to_date('2007-01-01','yyyy-mm-dd')) tablespace dw,
partition part_03 values less than(maxvalue,maxvalue) tablespace dw
);
浜屻丠ash鍒嗗尯錛堟暎鍒楀垎鍖猴級銆?鏁e垪鍒嗗尯閫氳繃鎸囧畾鍒嗗尯緙栧彿鏉ュ潎鍖鍒嗗竷鏁版嵁鐨勪竴縐嶅垎鍖虹被鍨嬶紝鍥犱負閫氳繃鍦↖/O璁懼涓婅繘琛屾暎鍒楀垎鍖猴紝浣胯榪欎簺鍒嗗尯澶у皬涓鑷淬傚灝唒art_id鐨勬暟鎹牴鎹嚜韜殑鎯呭喌鏁e垪鍦板瓨鏀懼湪鎸囧畾鐨勪笁涓〃絀洪棿涓細
create table niegc_part
(
part_id integer primary key,
part_date date,
part_dec varchar2(100)
)
partition by hash(part_id)
(
partition part_01 tablespace dw1,
partition part_02 tablespace dw2
);
緋葷粺灝嗘寜part_id灝嗚褰曟暎鍒楀湴鎻掑叆涓変釜鍒嗗尯涓紝榪欓噷涔熷氨鏄簩涓笉鍚岀殑琛ㄧ┖闂翠腑銆?/p>
涓夈佸鍚堝垎鍖恒傛牴鎹寖鍥村垎鍖哄悗錛屾瘡涓垎鍖哄唴鐨勬暟鎹啀鏁e垪鍦板垎甯冨湪鍑犱釜琛ㄧ┖闂翠腑錛岃繖鏍鋒垜浠氨瑕佷嬌鐢ㄥ鍚堝垎鍖恒傚鍚堝垎鍖烘槸鍏堜嬌鐢ㄨ寖鍥村垎鍖猴紝鐒跺悗鍦ㄦ瘡涓垎鍖哄悓鍐嶄嬌鐢ㄦ暎鍒楀垎鍖虹殑涓縐嶅垎鍖烘柟娉曪紝濡傚皢part_date鐨勮褰曟寜鏃墮棿鍒嗗尯錛岀劧鍚庢瘡涓垎鍖轟腑鐨勬暟鎹垎涓変釜瀛愬垎鍖猴紝灝嗘暟鎹暎鍒楀湴瀛樺偍鍦ㄤ笁涓寚瀹氱殑琛ㄧ┖闂翠腑錛?/p>
create table niegc_part
(
part_id integer primary key,
part_date date,
part_dec varchar2(100)
)
partition by range(part_date) subpartition by hash(part_id)
subpartitions 2 store in(dw1,dw2)
(
partition part_01 values less than(to_date('2006-01-01','yyyy-mm-dd')) tablespace dw1,
partition part_02 values less than(to_date('2007-01-01','yyyy-mm-dd')) tablespace dw2,
partition part_03 values less than(maxvalue) tablespace dw1
);
鍏堟牴鎹畃art_date榪涜鑼冨洿鍒嗗尯錛岀劧鍚庢牴鎹氦鏄撶殑ID灝嗚褰曟暎鍒楀湴瀛樺偍鍦ㄤ簩涓〃絀洪棿涓?/p>
鍥涖佺儲寮曞垎鍖猴細
娉ㄦ剰錛?瀵規煇涓瓧孌靛凡鍋氫簡鍒嗗尯浜嗭紝鏄笉鍏佽鍐嶅緩绔嬬儲寮曞垎鍖虹殑銆傝繖涓鐐硅闈炲父娉ㄦ剰銆?br />鍏ㄥ眬绱㈠紩寤虹珛鏃秅lobal瀛愬彞鍏佽鎸囧畾绱㈠紩鐨勮寖鍥村鹼紝榪欎釜鑼冨洿鍊間負绱㈠紩瀛楁鐨勮寖鍥村鹼細
create index idx_part_id on niegc_part(part_dec)
global partition by range(part_dec)
(
partition idx_1 values less than('1000') tablespace dw,
partition idx_2 values less than(maxvalue) tablespace dw
)
灞閮ㄧ儲寮曞垎鍖虹殑寤虹珛錛氾紙娉ㄦ剰錛氳〃蹇呴』瀛樺湪鍒嗗尯錛屾鍒嗗尯鐨勪釜鏁板繀欏誨拰鍒嗗尯琛ㄧ殑鍒嗗尯涓暟涓鏍鳳紝涓嶇劧鏄緩绔嬩笉璧鋒潵鐨勶級
create index idx_part_id on niegc_part(part_dec)
local
(
partition idx_1 tablespace dw1,
partition idx_2 tablespace dw2
)
浜斻佸垎鍖虹淮鎶わ細(鍙鑼冨洿鍒嗗尯)
錛?錛夈佸鍔犱竴涓垎鍖猴細鍒嗗尯鑼冨洿鍙兘寰涓婂錛屼笉鑳藉鍔犱竴涓皯浜庡師鏈夌殑鍒嗗尯錛?/p>
alter table niegc_part add partition part_03 values less than(maxvalue)
錛?錛夈佸悎騫跺垎鍖猴細錛堝悎騫跺悗鐨勫垎鍖哄繀欏繪寚涓嬫渶鍚庝竴涓ぇvalue鐨勫垎鍖猴級
alter table niegc_part merge partitions part_02,part_03 into partition part_03
錛?錛夈佸垹闄や竴涓垎鍖猴細
alter table niegc_part drop partition part_01
鍒嗗尯緇存姢錛?鍙鑼冨洿鍒嗗尯)
銆銆錛?錛夈佸鍔犱竴涓垎鍖猴細鍒嗗尯鑼冨洿鍙兘寰涓婂錛屼笉鑳藉鍔犱竴涓皯浜庡師鏈夌殑鍒嗗尯錛?
銆銆alter table tablename add partition new_partitionname values less than(maxvalue)
銆銆錛?錛夈佸悎騫?鎷嗗垎鍒嗗尯錛氾紙鍚堝茍鍚庣殑鍒嗗尯蹇呴』鎸囦笅鏈鍚庝竴涓ぇvalue鐨勫垎鍖猴級
銆銆alter table tablename merge partitions partitionname1,partitionname2 into partition partitionname2;
銆銆alter table tablename split partition partitionname1 at (xx) into (
銆銆partition newpartition1 ,partition newpartition2) ;
銆銆娉ㄦ剰錛歺x涓哄垎鍓茬偣
銆銆錛?錛夈佸垹闄や竴涓垎鍖猴細
銆銆alter table niegc_part drop partition partitionname;
銆銆(4)灝嗗垎鍖烘敼鍚?
銆銆alter table table_name rename Partition partition_name to partition_name
銆銆(5)灝嗗垎鍖烘敼琛ㄧ┖闂?
銆銆alter table table_name move partition_name
銆銆tablespace tablespace_name nologging
銆銆(6)鏌ヨ鐗瑰畾鍒嗗尯
銆銆select count(*) from table_name partition (partition_name);
銆銆(7)娣誨姞鏁版嵁
銆銆insert into table_name select * from table_name partition (partition_name)
銆銆(8)鍒嗗尯琛ㄧ殑瀵煎嚭
銆銆userid=USER/PWD
銆銆buffer=102400
銆銆tables=table_name:partition_name,
銆銆file=E:exp_paraxxx.dmp
銆銆log=E:exp_paraxxx.log
銆銆(9)鎶宸э細鍒犻櫎琛ㄤ腑涓涓瓧孌?
銆銆alter table table_name set unused column column_name;
銆銆(10)鍔犱竴涓瓧孌?
銆銆alter table table_name add column_name number(1);
http://www.cnblogs.com/rootq/archive/2008/12/24/1361631.html