<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Decode360's Blog

    業(yè)精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
      397 隨筆 :: 33 文章 :: 29 評(píng)論 :: 0 Trackbacks
    Oracle的分區(qū)② - 分區(qū)表舉例
    ?
    ??? 好,接著學(xué)習(xí)分區(qū)表。為了將來可以很熟練得應(yīng)用分區(qū)表,所以專門花一篇的篇幅,來進(jìn)行分區(qū)表的實(shí)例模擬。其實(shí)操作的難度不大,主要還是關(guān)于表的設(shè)計(jì)和性能問題的分析,這個(gè)才是需要經(jīng)驗(yàn)和技術(shù)的東西。
    ?
    ?
    一、分區(qū)表的維護(hù)
    ?
    ??? 分區(qū)表的維護(hù)操作比較復(fù)雜,具體可參見《Oracle 9i DBA指南》 P272-P293.
    ?
    ?
    二、實(shí)際舉例
    ?
    ??? 1、移動(dòng)歷史表中的時(shí)間窗口
    ?
    ??? 案例如下:有一個(gè)表order,包含13個(gè)月的事務(wù):1年的歷史數(shù)據(jù)和本月的訂單。每個(gè)月一個(gè)分區(qū),這個(gè)按月的分區(qū)被命名為order_yymm,也是他們所在的表空間。 另外order表包含兩個(gè)局部索引:order_ix_onum是一個(gè)訂單號(hào)碼上的局部的、前綴的、唯一索引;order_ix_supp是一個(gè)供應(yīng)商號(hào)碼上的局部的、非前綴索引。局部索引分區(qū)用匹配基礎(chǔ)表的后綴命名。 還有一個(gè)用于客戶姓名的全局唯一索引order_ix_cust,并包含3個(gè)分區(qū),每個(gè)分區(qū)用戶1/3的字母。
    ?
    ??? 則,1944年10月31日,修改時(shí)間窗的步驟如下:
    ?
    ??? ①備份最早的時(shí)間間隔數(shù)據(jù)
    ??? ALTER TABLESPACE order_9310 BEGIN BACKUP;
    ??? ...
    ??? ALTER TABLESPACE order_9310 END BACKUP;
    ?
    ??? ②刪除最早的時(shí)間間隔分區(qū)
    ??? ALTER TABLE order DROP PARTITION order_9310;
    ?
    ??? ③增加最近的時(shí)間間隔的分區(qū)
    ??? ALTER TABLE order ADD PARTITION order_9411;
    ?
    ??? ④重建全局索引分區(qū)
    ??? ALTER INDEX order_ix_cust REBUILD PARTITION order_ix_cust_AH;
    ??? ALTER INDEX order_ix_cust REBUILD PARTITION order_ix_cust_IP;
    ??? ALTER INDEX order_ix_cust REBUILD PARTITION order_ix_cust_QZ;
    ?
    ??? 注意:在更改order表的分區(qū)時(shí),需要考慮到用戶的并發(fā)控制。需要做的2點(diǎn)是:
    ??? ● 在一個(gè)被定義好的批處理窗口期間,關(guān)閉所有用戶層次的應(yīng)用
    ??? ● 通過撤銷所有應(yīng)用使用的角色的訪問權(quán)限,來保證沒有誰可以訪問表order
    ?
    ??? 2、將分區(qū)視圖轉(zhuǎn)換為分區(qū)表
    ?
    ??? 案例:分區(qū)視圖按如下定義:
    ??? CREATE VIEW accounts AS
    ??? SELECT * FROM accounts_jan98
    ??? UNION ALL
    ??? SELECT * FROM accounts_fab98
    ??? UNION ALL
    ??? ...
    ??? SELECT * FROM accounts_dec98;
    ?
    ??? 修改的步驟如下:
    ?
    ??? ①創(chuàng)建分區(qū)表,僅最近兩個(gè)分區(qū)從該視圖遷移到分區(qū)表中,每個(gè)分區(qū)獲得兩個(gè)數(shù)據(jù)塊的一個(gè)段(作為占位器)
    ??? CREATE TABLE accounts_new (...)
    ??? TABLESPACE ts_temp STORAGE (INITIAL 2)
    ??? PARTITION BY RANGE (opening_date)
    ??? (PARTITION jan98 VALUES LESS THEN ('01-FEB-1998'),
    ??? ...
    ??? PARTITION dec98 VALUES LESS THEN ('01-JAN-1999'));
    ?
    ? ? ②用EXCHANGE PARTITION語句,將該表遷移到對(duì)應(yīng)分區(qū)
    ??? ALTER TABLE accounts_new
    ??? EXCHANGE PARTITION nov98 WITH TABLE
    ??? accounts_nov98 WITH VALIDATION;
    ??? ALTER TABLE accounts_new
    ??? EXCHANGE PARTITION dec98 WITH TABLE
    ??? accounts_dec98 WITH VALIDATION;
    ??? 這樣,與nov98和dec98分區(qū)相關(guān)的占位器數(shù)據(jù)段就同accounts_nov98和accounts_dec98表相關(guān)的數(shù)據(jù)段作了交換。
    ?
    ? ? ③重新定義accounts視圖
    ??? CREATE OR REPLACE VIEW accounts AS
    ??? SELECT * FROM accounts_jan98
    ??? UNION ALL
    ??? SELECT * FROM accounts_fab98
    ??? UNION ALL
    ??? ...
    ??? UNION ALL
    ??? SELECT * FROM accounts_new PARTITION (nov98)
    ??? UNION ALL
    ??? SELECT * FROM accounts_new PARTITION (dec98);
    ?
    ??? ④刪除accounts_nov98和accounts_dec98表
    ?
    ??? ⑤重復(fù)以上操作,直至所有表都轉(zhuǎn)換到分區(qū)中,刪除該視圖,并將分區(qū)表改為視圖名。
    ??? DROP VIEW accounts;
    ??? RENAME accounts_new to accounts;
    ?
    ?
    三、分區(qū)表/索引的相關(guān)信息
    ?
    ??? DBA|ALL|USER_PART_TABLES:顯示所有分區(qū)表的分區(qū)信息
    ??? DBA|ALL|USER_TAB_PARTITIONS:顯示分區(qū)層次的分區(qū)信息、分區(qū)存儲(chǔ)參數(shù)、由ANALYZE決定的的統(tǒng)計(jì)數(shù)據(jù)
    ??? DBA|ALL|USER_TAB_SUBPARTITIONS:顯示子分區(qū)層次的分區(qū)信息、分區(qū)存儲(chǔ)參數(shù)、由ANALYZE決定的統(tǒng)計(jì)數(shù)據(jù)
    ??? DBA|ALL|USER_PART_KEY_COLUMNS:先是分區(qū)表的分區(qū)鍵值
    ??? DBA|ALL|USER_SUBPART_KEY_COLUMNS:顯示組合分區(qū)表(和組合分區(qū)表上的局部索引)的子分區(qū)鍵列
    ??? DBA|ALL|USER_PART_COL_STATISTICS:顯示表分區(qū)的列統(tǒng)計(jì)數(shù)據(jù)和直方圖信息
    ??? DBA|ALL|USER_SUBPART_COL_STATISTICS:顯示表子分區(qū)的列統(tǒng)計(jì)數(shù)據(jù)和直方圖信息
    ??? DBA|ALL|USER_PART_HISTOGRAMS:顯示表的分區(qū)上的直方圖和直方圖數(shù)據(jù)
    ??? DBA|ALL|USER_SUBPART_HISTOGRAMS:顯示表的子分區(qū)上的直方圖和直方圖數(shù)據(jù)
    ??? DBA|ALL|USER_PART_INDEXES:顯示分區(qū)索引的分區(qū)信息
    ??? DBA|ALL|USER_IND_PARTITIONS:顯示索引分區(qū)的:分區(qū)層次信息、分區(qū)存儲(chǔ)參數(shù)、ANALYZE采集的統(tǒng)計(jì)數(shù)據(jù)
    ??? DBA|ALL|USER_IND_SUBPARTITONS:顯示索引子分區(qū)的:分區(qū)層次信息、分區(qū)存儲(chǔ)參數(shù)、ANALYZE采集的統(tǒng)計(jì)數(shù)據(jù)
    ?
    ?
    ?
    ?
    posted on 2009-03-08 21:56 decode360 閱讀(284) 評(píng)論(0)  編輯  收藏 所屬分類: 08.DBA
    主站蜘蛛池模板: 亚洲va无码专区国产乱码| 在线免费观看一级毛片| 国产免费AV片在线观看| 中文字幕无线码中文字幕免费| 免费又黄又爽又猛大片午夜| 美女一级毛片免费观看| 国产91成人精品亚洲精品| 国产青草亚洲香蕉精品久久| 羞羞视频在线免费观看| jizz在线免费观看| 9久热精品免费观看视频| 国产一区二区三区免费观看在线| 免费看黄的成人APP| 四虎国产精品永久免费网址| 91精品国产免费入口| 性短视频在线观看免费不卡流畅| 美女网站免费福利视频| 最新猫咪www免费人成| 香蕉高清免费永久在线视频| 免费人成在线观看网站品爱网日本 | 亚洲午夜无码片在线观看影院猛| 亚洲国产成人精品91久久久| 久久精品国产亚洲一区二区三区| 亚洲色婷婷六月亚洲婷婷6月| 亚洲国产精品福利片在线观看| 亚洲乱亚洲乱淫久久| 亚洲免费在线视频观看| 亚洲精品无码永久在线观看男男| 国产亚洲欧美日韩亚洲中文色| 看亚洲a级一级毛片| a级毛片免费播放| 日本最新免费网站| 国产美女无遮挡免费视频网站| 亚洲综合精品香蕉久久网| 亚洲国产成人久久综合碰碰动漫3d| 亚洲国产日韩在线成人蜜芽| jzzijzzij在线观看亚洲熟妇| 一级特黄特色的免费大片视频| 日韩在线不卡免费视频一区| 无码日韩人妻av一区免费| 亚洲国产综合精品中文字幕 |