這篇文章將為大家詳細(xì)講解有關(guān)如何進(jìn)行分區(qū)表split操作及maxvalue處理,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
我們提供的服務(wù)有:成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、曲麻萊ssl等。為上千多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的曲麻萊網(wǎng)站制作公司
CREATE TABLE DFMS.WIP_D_WO_DETAIL
(
WORK_ORDER VARCHAR2(25 CHAR) NOT NULL,
PART_NO VARCHAR2(35 BYTE) NOT NULL,
PART_REV VARCHAR2(10 BYTE) DEFAULT 'N/A' NOT NULL,
ALT_FLAG VARCHAR2(1 BYTE) DEFAULT '0' NOT NULL,
SUBSTITUTE_PN VARCHAR2(35 BYTE),
UNIT_QTY NUMBER DEFAULT 0 NOT NULL,
SOURCE_DEPT VARCHAR2(5 BYTE) DEFAULT 'SFC' NOT NULL,
CREATOR VARCHAR2(20 BYTE) NOT NULL,
CREATE_DATE DATE DEFAULT SYSDATE,
UPDATER VARCHAR2(20 BYTE),
UPDATE_DATE DATE,
SCH_PART_NO VARCHAR2(35 BYTE),
MAIN_WHID VARCHAR2(10 BYTE),
REPLACE_GROUP VARCHAR2(50 BYTE) NOT NULL,
MOD_NO VARCHAR2(20 BYTE),
PHANTOM_FLAG VARCHAR2(10 BYTE)
)
TABLESPACE PART_D_TS1
PCTUSED 0
PCTFREE 10
INITRANS 1
MAXTRANS 255
LOGGING
PARTITION BY RANGE (CREATE_DATE)
(
PARTITION P200907 VALUES LESS THAN (TO_DATE(' 2009-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS',
'NLS_CALENDAR=GREGORIAN'))
LOGGING
NOCOMPRESS
TABLESPACE PART_D_TS1
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 50M
NEXT 50M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
),
PARTITION P201001 VALUES LESS THAN (TO_DATE(' 2010-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS',
'NLS_CALENDAR=GREGORIAN'))
LOGGING
NOCOMPRESS
TABLESPACE PART_D_TS1
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 50M
NEXT 50M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
),
PARTITION P201007 VALUES LESS THAN (TO_DATE(' 2010-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS',
'NLS_CALENDAR=GREGORIAN'))
LOGGING
NOCOMPRESS
TABLESPACE PART_D_TS1
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 50M
NEXT 50M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
),
PARTITION P201101 VALUES LESS THAN (TO_DATE(' 2011-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS',
'NLS_CALENDAR=GREGORIAN'))
LOGGING
NOCOMPRESS
TABLESPACE PART_D_TS1
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 50M
NEXT 50M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
),
PARTITION P201107 VALUES LESS THAN (TO_DATE(' 2011-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS',
'NLS_CALENDAR=GREGORIAN'))
LOGGING
NOCOMPRESS
TABLESPACE PART_D_TS1
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 50M
NEXT 50M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
),
PARTITION P201201 VALUES LESS THAN (TO_DATE(' 2012-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS',
'NLS_CALENDAR=GREGORIAN'))
LOGGING
NOCOMPRESS
TABLESPACE PART_D_TS1
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 50M
NEXT 50M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
),
PARTITION P201207 VALUES LESS THAN (TO_DATE(' 2012-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS',
'NLS_CALENDAR=GREGORIAN'))
LOGGING
NOCOMPRESS
TABLESPACE PART_D_TS1
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 50M
NEXT 50M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
),
PARTITION P201301 VALUES LESS THAN (TO_DATE(' 2013-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS',
'NLS_CALENDAR=GREGORIAN'))
LOGGING
NOCOMPRESS
TABLESPACE PART_D_TS1
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 50M
NEXT 50M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
),
PARTITION PMAX VALUES LESS THAN (MAXVALUE)
LOGGING
NOCOMPRESS
TABLESPACE PART_D_TS1
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 50M
NEXT 50M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
)
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING
ENABLE ROW MOVEMENT;
假設(shè)沒有maxvalue部分,那么加入分區(qū):
ALTER TABLE DFMS.WIP_D_WO_DETAIL
ADD PARTITION P201307 VALUES LESS THAN (TO_DATE(' 2013-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS',
NLS_CALENDAR=GREGORIAN'))
LOGGING
NOCOMPRESS
TABLESPACE PART_D_TS1
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 50M
NEXT 50M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
) ;
這里有maxvalue部分,那么加入分區(qū)需要split :
備注:
split partition時(shí),根據(jù)split point原來(lái)的partition分裂成兩個(gè)partition。
如果其中一個(gè)partition是空的,則不需要move原來(lái)的partition,也不需要rebuild
index,這種我們稱之為fast split。
不過如果在split的時(shí)候指定了tablespace,即使其中一個(gè)partition是空的,而且該
tablespace與parent partition的tablespace不同,oracle會(huì)move整個(gè)partition到
新的tablespace中。因?yàn)檫@個(gè)tablespace參數(shù),導(dǎo)致了原來(lái)的fast split不成功,而
需要move segment和rebuild index。
ALTER TABLE DFMS.WIP_D_WO_DETAIL
SPLIT PARTITION PMAX AT (TO_DATE(' 2013-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', NLS_CALENDAR=GREGORIAN'))
INTO (PARTITION P201307 TABLESPACE PART_D_TS1, PARTITION PMAX TABLESPACE PART_D_TS1) ;
如果你需要取消maxvalue部分,那么split幾部分后,查看最后一部分是否有值,如果沒有,直接
drop掉最后split出去的那部分。 然后就可以直接add partition 了。
ALTER TABLE DFMS.WIP_D_WO_DETAIL
SPLIT PARTITION PMAX AT (TO_DATE(' 2013-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', NLS_CALENDAR=GREGORIAN'))
INTO (PARTITION P201307 TABLESPACE PART_D_TS1, PARTITION P2014 TABLESPACE PART_D_TS1) ;
ALTER TABLE DFMS.WIP_D_WO_DETAIL
SPLIT PARTITION P2014 AT (TO_DATE(' 2014-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', NLS_CALENDAR=GREGORIAN'))
INTO (PARTITION P201401 TABLESPACE PART_D_TS1, PARTITION P201407 TABLESPACE PART_D_TS1) ;
ALTER TABLE DFMS.WIP_D_WO_DETAIL
SPLIT PARTITION P201407 AT (TO_DATE(' 2014-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', NLS_CALENDAR=GREGORIAN'))
INTO (PARTITION P201407 TABLESPACE PART_D_TS1, PARTITION P201501 TABLESPACE PART_D_TS1) ;
ALTER TABLE DFMS.WIP_D_WO_DETAIL DROP PARTITION P201501 ;
然后就可以類似沒有設(shè)置maxvalue一樣加入后面的partiton .
ALTER TABLE DFMS.WIP_D_WO_DETAIL
ADD PARTITION P201501 VALUES LESS THAN (TO_DATE(' 2015-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS',
NLS_CALENDAR=GREGORIAN')) ;
ALTER TABLE DFMS.WIP_D_WO_DETAIL
ADD PARTITION P201507 VALUES LESS THAN (TO_DATE(' 2015-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS',
NLS_CALENDAR=GREGORIAN')) ;
.....
如果在split的時(shí)候?qū)ablespace更換了,那么需要rebuild index .
下面的語(yǔ)句用于rebuild local index partitions或子分區(qū)
(子分區(qū)一般指range-hash等組合分區(qū)中的子分區(qū)) :
ALTER INDEX ... REBUILD PARTITION/SUBPARTITION
ALTER TABLE ... MODIFY PARTITION/SUBPARTITION ... REBUILD UNUSABLE LOCAL INDEXES
這個(gè)語(yǔ)句找出所有的unusable的index, 然后rebuild他們。
關(guān)于如何進(jìn)行分區(qū)表split操作及maxvalue處理就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。