12C 对表分区维护的增强
Oracle Database 12c對表分區(qū)變化比較多,共分為下面幾點
?1.在線移動分區(qū):通過MOVE ONLINE關(guān)鍵字實現(xiàn)在線分區(qū)移動。移動過程中,對表和被移動的分區(qū)可以執(zhí)行查詢操作,
DML語句以及分區(qū)的創(chuàng)建和維護操作。整個移動過程對用戶來說是透明的。
?2.多個分區(qū)同時操作:可以對多個分區(qū)同時進行維護操作,如將一年的12個分區(qū)合并到一個新的分區(qū)中,或者將一個分區(qū)
?
分成多個分區(qū)。可以通過FOR語句指定操作的每個語句,對于RANGE分區(qū)而言,也可以通過TO來指定處理分區(qū)的范圍。
多個分區(qū)操作自動并行完成。
?
?3.INTERVAL-REFERENCE分區(qū):把11g的interval分區(qū)和reference分區(qū)結(jié)合,這樣主表自動增加一個分區(qū)后,所有字表,
孫子表·····重重孫子表上都會自動隨著外界列數(shù)據(jù)增加,自動創(chuàng)建新的分區(qū)。
?4.TRUNCATE和EXCHANGE分區(qū)及子分區(qū)。五分是TRUNCATE還是EXCHANGE分區(qū),在主表上執(zhí)行,都可以級聯(lián)的作用在字表,
孫子吧·····重重孫子表上同時執(zhí)行。對于TRUNCATE而言,所有表的TRUNACATE操作在同一個事務(wù)中,如果中途失敗,
會回滾到之前的狀態(tài)。通過關(guān)鍵字CASCADE實現(xiàn)。
?
?5.異步全局索引維護:對于非常大的分區(qū)表而言,UPDATE GLOBAL INDEX不再是痛苦。Oracle可以實現(xiàn)了異步維護的
功能,即使是幾億條的記錄的全局索引,在分區(qū)維護操作,比如DROP或TRUNCATE后,仍然是VALID狀態(tài),索引不會失效,
不過索引的狀態(tài)是包含OBSOLETE數(shù)據(jù),當維護操作完成,索引狀態(tài)恢復(fù)。
?6.部分本地和全局索引:Oracle的所有可以在分區(qū)級別定義。無論全局索引還是本地所有都可以在分區(qū)表的部分分區(qū)
上建立,其他分區(qū)上則沒有所有。當通過所有列訪問全表數(shù)據(jù)時,Oracle通過UNION ALL實現(xiàn),一部分通過索引掃描,
另一部分通過全分區(qū)掃描。這可以減少對歷史數(shù)據(jù)的索引量,增強了靈活性。
?
具體例子:
1)添加多個新分區(qū):
?在12c之前,一次只能添加一個新分區(qū)到一個已存在的分區(qū)表。在12c中只需要一條單獨的ALTER TABLE ?ADD PARTITION
?命令就可以添加N個新分區(qū)。
?ALTER?TABLE?EMP_PART?ADD?PARTITIONPARTITION?P4?VALUES?LESS?THAN(35000)PARTITION?P5?VALUES?LESS?THAN(40000)?同樣,只要MAXVALUE分區(qū)不存在,可以添加多個新分區(qū)到一個列表和系統(tǒng)分區(qū)表
2)刪除、截斷多個分區(qū)/子分區(qū)
?通過在此之前,一次只能刪除/截斷一個分區(qū)。12c中通過ALTER TABLE table_name {TRUNCAT|DROP} ?PARTITIONS
?ALTER?TABLE?EMP_PART?DROP?PARTITIONS?P4,P5;ALTER?TABLE?EMP_PART?TRUNCATE?PARTITIONS?P4,P5;?要保持索引更新,使用UPDATE INDEXES或UPDATE GLOBAL INDEXES語句。
?ALTER?TABLE?EMP_PART?DROP?PARTITIONS?P4,P5?UPDATE?GLOBAL?INDEXES;ALTER?TABLE?EMP_PART?TRUNCATE?PARTITIONS?P4,P5?UPDATE?GLOBAL?INDEXES;?如果沒有使用UPDATE GLOBAL INDEXES更新索引,也可以通過查詢ORPHANED_ENTRIES字段找出是否有索引包含過期的條目
3)將單個分區(qū)分割為多個新分區(qū)
?在此之前是無法單個命令完成這個操作的。
?ALTER?TABLE?EMP_PART?SPLIT?PARTITIONS?p_max?INTO(PARTITION?P4?VALUES?LESS?THAN?(30000),PARTITION?P5?VALUES?LESS?THAN(40000),PARTITION?P_MAX);4)將多個分區(qū)合并為一個分區(qū)
?ALTER?TABLE?EMP_PART?MERGE?PARTITIONS?P2,P3,P4?INTO?PARTITION?P_MERGE;?如果是連續(xù)分區(qū),可以通過TO來
?ALTER?TABLE?EMP_PART?MERGE?PARTITIONS?P2?TO?P4?INTO?PARTITION?P_MERGE;?
標簽:12C 分區(qū)表 本文鏈接:http://www.cndba.cn/Expect-le/article總結(jié)
以上是生活随笔為你收集整理的12C 对表分区维护的增强的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 主动中断请求
- 下一篇: 史诗级pg脚本,亲测好使