




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、表分區(qū)有以下優(yōu)點(diǎn): 1、數(shù)據(jù)查詢:數(shù)據(jù)被存儲(chǔ)到多個(gè)文件上,減少了I/O負(fù)載,查詢速度提高。 2、數(shù)據(jù)修剪:保存歷史數(shù)據(jù)非常的理想。 3、備份:將大表的數(shù)據(jù)分成多個(gè)文件,方便備份和恢復(fù)。 4、并行性:可以同時(shí)向表中進(jìn)行DML操作,并行性性能提高。 當(dāng)表中的數(shù)據(jù)量不斷增大,查詢數(shù)據(jù)的速度就會(huì)變慢,應(yīng)用程序的性能就會(huì)下降,這時(shí)就應(yīng)該考慮對(duì)表進(jìn)行分區(qū)。表進(jìn)行分區(qū)后,邏輯上表仍然是一張完整的表,只是將表中的數(shù)據(jù)在物理上存放到多個(gè)表空間(物理文件上),這樣查詢數(shù)據(jù)時(shí),不至于每次都掃描整張表。 Oracle中提供了以下幾種表分區(qū): 一、范圍分區(qū):這種類型的分區(qū)是使用列的一組值,通常將該列成為分區(qū)鍵。 示例1
2、:假設(shè)有一個(gè)CUSTOMER表,表中有數(shù)據(jù)行,我們將此表通過CUSTOMER_ID進(jìn)行分區(qū),每個(gè)分區(qū)存儲(chǔ)行,我們將每個(gè)分區(qū)保存到單獨(dú)的表空間中,這樣數(shù)據(jù)文件就可以跨越多個(gè)物理磁盤。下面是創(chuàng)建表和分區(qū)的代碼,如下: CREATE TABLE CUSTOMER ( CUSTOMER_ID NUMBER NOT NULL PRIMARY KEY, FIRST_NAME VARCHAR2(30) NOT NULL, LAST_NAME VARCHAR2(30) NOT NULL, PHONE VARCHAR2(15) NOT NULL, EMAIL VARCHAR2(80), STATUS CHAR(
3、1) ) PARTITION BY RANGE (CUSTOMER_ID) ( PARTITION CUS_PART1 VALUES LESS THAN () TABLESPACE CUS_TS01, PARTITION CUS_PART2 VALUES LESS THAN () TABLESPACE CUS_TS02 ) 在創(chuàng)建表進(jìn)行分區(qū)時(shí),表空間必須先存在,而且建議將不同的分區(qū)放入不同的表空間中。 示例2:假設(shè)有ORDER_ACTIVITIES表,每6個(gè)月對(duì)訂單進(jìn)行清理,我們可以按月份對(duì)表進(jìn)行分區(qū),分區(qū)代碼如下: CREATE TABLE ORDER_ACTIVITIES ( ORDER_
4、ID NUMBER(7) NOT NULL, ORDER_DATE DATE, TOTAL_AMOUNT NUMBER, CUSTOTMER_ID NUMBER(7), PAID CHAR(1) ) PARTITION BY RANGE (ORDER_DATE) ( PARTITION ORD_ACT_PART01 VALUES LESS THAN (TO_DATE(01-MAY-2003,DD-MON-YYYY) TABLESPACE ORD_TS01, PARTITION ORD_ACT_PART02 VALUES LESS THAN (TO_DATE(01-JUN-2003,DD-MON
5、-YYYY) TABLESPACE ORD_TS02, PARTITION ORD_ACT_PART02 VALUES LESS THAN (TO_DATE(01-JUL-2003,DD-MON-YYYY) TABLESPACE ORD_TS03 ) 二、列表分區(qū):該分區(qū)的特點(diǎn)是某列的值只有幾個(gè),基于這樣的特點(diǎn)我們可以采用列表分區(qū)。 示例1: CREATE TABLE PROBLEM_TICKETS ( PROBLEM_ID NUMBER(7) NOT NULL PRIMARY KEY, DESCRIPTION VARCHAR2(2000), CUSTOMER_ID NUMBER(7) NOT
6、 NULL, DATE_ENTERED DATE NOT NULL, STATUS VARCHAR2(20) ) PARTITION BY LIST (STATUS) ( PARTITION PROB_ACTIVE VALUES (ACTIVE) TABLESPACE PROB_TS01, PARTITION PROB_INACTIVE VALUES (INACTIVE) TABLESPACE PROB_TS02 ) 三、散列分區(qū):這類分區(qū)是在列值上使用散列算法,以確定將行放入哪個(gè)分區(qū)中。當(dāng)列的值沒有合適的條件時(shí),建議使用散列分區(qū)。請(qǐng)看下列示例: 示例1: CREATE TABLE HASH_
7、TABLE ( COL NUMBER(8), INF VARCHAR2(100) ) PARTITION BY HASH (COL) ( PARTITION PART01 TABLESPACE HASH_TS01, PARTITION PART02 TABLESPACE HASH_TS02, PARTITION PART03 TABLESPACE HASH_TS03 ) 四、復(fù)合范圍列表分區(qū):這種分區(qū)是基于范圍分區(qū)和列表分區(qū),表首先按某列進(jìn)行范圍分區(qū),然后再按某列進(jìn)行列表分區(qū),分區(qū)之中的分區(qū)被稱為子分區(qū)。 示例1: CREATE TABLE SALES ( PRODUCT_ID VARCHAR
8、2(5), SALES_DATE DATE, SALES_COST NUMBER(10), STATUS VARCHAR2(20) ) PARTITION BY RANGE(SALES_DATE) SUBPARTITION BY LIST (STATUS) ( PARTITION P1 VALUES LESS THAN (TO_DATE(2003-01-01,YYYY-MM-DD) TABLESPACE P1_TS ( SUBPARTITION P1SUB1 VALUES (ACTIVE) TABLESPACE SUBP1_TS1, SUBPARTITION P1SUB2 VALUES (IN
9、ACTIVE) TABLESPACE SUBP1_TS2 ), PARTITION P2 VALUES LESS THAN (TO_DATE(2003-03-01,YYYY-MM-DD) TABLESPACE P2_TS ( SUBPARTITION P2SUB1 VALUES (ACTIVE) TABLESPACE SUBP2_TS1, SUBPARTITION P2SUB2 VALUES (INACTIVE) TABLESPACE SUBP2_TS2 ) ) 示例2:使用TEMPLATE模板 CREATE TABLE SALES ( PRODUCT_ID VARCHAR2(5), SALE
10、S_DATE DATE, SALES_COST NUMBER(10), STATUS VARCHAR2(20) ) PARTITION BY RANGE(SALES_DATE) SUBPARTITION BY LIST (STATUS) SUBPARTITION TEMPLATE ( SUBPARTITION SUB1 VALUES (ACTIVE) TABLESPACE SUBP1_TS1, SUBPARTITION SUB2 VALUES (INACTIVE) TABLESPACE SUBP2_TS2 ) ( PARTITION P1 VALUES LESS THAN (TO_DATE(2
11、003-01-01,YYYY-MM-DD) TABLESPACE P1_TS, PARTITION P2 VALUES LESS THAN (TO_DATE(2003-03-01,YYYY-MM-DD) TABLESPACE P2_TS ) 五、復(fù)合范圍散列分區(qū):這種分區(qū)是基于范圍分區(qū)和散列分區(qū),表首先按某列進(jìn)行范圍分區(qū),然后再按某列進(jìn)行散列分區(qū)。與上面的定義方式非常的類似,在此不單獨(dú)舉例。 表分區(qū)對(duì)于用戶來說是透明的,在插入數(shù)據(jù)時(shí)Oracle會(huì)自動(dòng)判斷插入的數(shù)據(jù),然后放入相應(yīng)的表分區(qū)中。但有時(shí)想單獨(dú)查詢某個(gè)分區(qū)中的數(shù)據(jù)時(shí),就必須手工指定分區(qū)的名稱。 示例1:(此示例基于:四、復(fù)合范圍列表分區(qū)
12、的示例一) 向SALES表插入記錄,不必指定表分區(qū)。 INSERT INTO SALES VALUES(00001,01-1月-02,100,ACTIVE) / INSERT INTO SALES VALUES(00002,01-1月-01,200,ACTIVE) / INSERT INTO SALES VALUES(00003,01-2月-03,300,INACTIVE) / INSERT INTO SALES VALUES(00004,04-2月-03,300,INACTIVE) / INSERT INTO SALES VALUES(00005,04-2月-02,300,INACTIVE)
13、 / 不指定表分區(qū)查看SALES表信息: SELECT * FROM SALES; 結(jié)果如下所示: 指定P1表分區(qū)查詢SALES表信息: SELECT * FROM SALES PARTITION(P1); 結(jié)果如下所示: 指定P1SUB1子分區(qū)查詢SALES表信息: SELECT * FROM SALES SUBPARTITION(P1SUB1); 結(jié)果如下所示: 示例2:(此示例基于:四、復(fù)合范圍列表分區(qū)的示例二) 示例2基于TEMPLATE模板的表分區(qū),查詢稍稍煩瑣一點(diǎn)。 指定P1表分區(qū)查詢SALES表信息: SELECT * FROM SALES PARTITION(P1); 結(jié)果如下
14、所示,和剛才查詢一致。 指定SUB1子分區(qū)查詢SALES表信息: SELECT * FROM SALES SUBPARTITION(SUB1); 出現(xiàn)如下錯(cuò)誤信息: 怎么解決以上問題呢?我們通過sys模式查看分區(qū)信息的數(shù)據(jù)字典,如下: 可以看出子分區(qū)不叫SUB1,而是P1_SUB1,重新查詢信息,如下圖所示: 有關(guān)表分區(qū)的一些維護(hù)性操作: 一、添加分區(qū) 以下代碼給SALES表添加了一個(gè)P3分區(qū) ALTER TABLE SALES ADD PARTITION P3 VALUES LESS THAN(TO_DATE(2003-06-01,YYYY-MM-DD); 注意:以上添加的分區(qū)界限應(yīng)該高于最
15、后一個(gè)分區(qū)界限。 以下代碼給SALES表的P3分區(qū)添加了一個(gè)P3SUB1子分區(qū) ALTER TABLE SALES MODIFY PARTITION P3 ADD SUBPARTITION P3SUB1 VALUES(COMPLETE); 二、刪除分區(qū) 以下代碼刪除了P3表分區(qū): ALTER TABLE SALES DROP PARTITION P3; 在以下代碼刪除了P4SUB1子分區(qū): ALTER TABLE SALES DROP SUBPARTITION P4SUB1; 注意:如果刪除的分區(qū)是表中唯一的分區(qū),那么此分區(qū)將不能被刪除,要想刪除此分區(qū),必須刪除表。 三、截?cái)喾謪^(qū) 截?cái)嗄硞€(gè)分區(qū)
16、是指刪除某個(gè)分區(qū)中的數(shù)據(jù),并不會(huì)刪除分區(qū),也不會(huì)刪除其它分區(qū)中的數(shù)據(jù)。當(dāng)表中即使只有一個(gè)分區(qū)時(shí),也可以截?cái)嘣摲謪^(qū)。通過以下代碼截?cái)喾謪^(qū): ALTER TABLE SALES TRUNCATE PARTITION P2; 通過以下代碼截?cái)嘧臃謪^(qū): ALTER TABLE SALES TRUNCATE SUBPARTITION P2SUB2; 四、合并分區(qū) 合并分區(qū)是將相鄰的分區(qū)合并成一個(gè)分區(qū),結(jié)果分區(qū)將采用較高分區(qū)的界限,值得注意的是,不能將分區(qū)合并到界限較低的分區(qū)。以下代碼實(shí)現(xiàn)了P1 P2分區(qū)的合并: ALTER TABLE SALES MERGE PARTITIONS P1,P2 INTO
17、PARTITION P2; 五、拆分分區(qū) 拆分分區(qū)將一個(gè)分區(qū)拆分兩個(gè)新分區(qū),拆分后原來分區(qū)不再存在。注意不能對(duì)HASH類型的分區(qū)進(jìn)行拆分。 ALTER TABLE SALES SBLIT PARTITION P2 AT(TO_DATE(2003-02-01,YYYY-MM-DD) INTO (PARTITION P21,PARTITION P22); 六、接合分區(qū)(coalesca) 結(jié)合分區(qū)是將散列分區(qū)中的數(shù)據(jù)接合到其它分區(qū)中,當(dāng)散列分區(qū)中的數(shù)據(jù)比較大時(shí),可以增加散列分區(qū),然后進(jìn)行接合,值得注意的是,接合分區(qū)只能用于散列分區(qū)中。通過以下代碼進(jìn)行接合分區(qū): ALTER TABLE SALES
18、COALESCA PARTITION; 七、重命名表分區(qū) 以下代碼將P21更改為P2 ALTER TABLE SALES RENAME PARTITION P21 TO P2; 九、跨分區(qū)查詢 select sum( *) from ( (select count(*) cn from t_table_SS PARTITION (P_1) union all select count(*) cn from t_table_SS PARTITION (P_2); 十、查詢表上有多少分區(qū) SELECT * FROM useR_TAB_PARTITIONS WHERE TABLE_NAME=tabl
19、eName 十一、查詢索引信息 select object_name,object_type,tablespace_name,sum(value) from v$segment_statistics where statistic_name IN (physical reads,physical write,logical reads)and object_type=INDEX group by object_name,object_type,tablespace_name order by 4 desc -顯示數(shù)據(jù)庫(kù)所有分區(qū)表的信息: select * from DBA_PART_TABLE
20、S -顯示當(dāng)前用戶可訪問的所有分區(qū)表信息: select * from ALL_PART_TABLES -顯示當(dāng)前用戶所有分區(qū)表的信息: select * from USER_PART_TABLES -顯示表分區(qū)信息 顯示數(shù)據(jù)庫(kù)所有分區(qū)表的詳細(xì)分區(qū)信息: select * from DBA_TAB_PARTITIONS -顯示當(dāng)前用戶可訪問的所有分區(qū)表的詳細(xì)分區(qū)信息: select * from ALL_TAB_PARTITIONS -顯示當(dāng)前用戶所有分區(qū)表的詳細(xì)分區(qū)信息: select * from USER_TAB_PARTITIONS -顯示子分區(qū)信息 顯示數(shù)據(jù)庫(kù)所有組合分區(qū)表的子分區(qū)信息: select * from DBA_TAB_SUB
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中職數(shù)學(xué)課件第七版
- 網(wǎng)絡(luò)計(jì)劃技術(shù)的原理與應(yīng)用
- 專題04 讀后續(xù)寫精彩結(jié)尾及主題升華仿寫(講義)原卷版-2025年高考英語(yǔ)二輪復(fù)習(xí)
- 數(shù)字化教育技術(shù)推動(dòng)商業(yè)創(chuàng)新的驅(qū)動(dòng)力
- 重慶七中2025屆物理高一下期末調(diào)研試題含解析
- 全球化背景下的教育政策改革研究報(bào)告
- 教育機(jī)器人助力遠(yuǎn)程辦公和在線教學(xué)
- 商業(yè)培訓(xùn)的在線教育平臺(tái)界面人性化設(shè)計(jì)
- 智能教室技術(shù)點(diǎn)亮教育未來的明燈
- 教育機(jī)器人的發(fā)展對(duì)未來辦公的啟示
- 小豬佩奇中譯英練習(xí)打印版
- 馮恩學(xué)田野考古學(xué)教案
- 20120309-奇瑞KD索賠培訓(xùn)材料(new)
- 社區(qū)獲得性肺炎ppt
- 直流屏檢修作業(yè)指導(dǎo)書(word文檔)
- GB/T 19404-2003微波鐵氧體器件主要性能測(cè)量方法
- GB/T 18418-2017家用衛(wèi)生殺蟲用品電熱蚊香液
- GB/T 17456.2-2010球墨鑄鐵管外表面鋅涂層第2部分:帶終飾層的富鋅涂料涂層
- 政府用地項(xiàng)目用地報(bào)批流程
- 高校畢業(yè)生學(xué)籍檔案管理課件
- 徐健順吟誦文集(.12.16)
評(píng)論
0/150
提交評(píng)論