Oracle Database 12c的十二大新特性

【TechTarget中國原創】作爲甲骨文全球大會OpenWorld 2012中的重要產品發佈,新版Oracle Database 12c彙集了參會者最多的目光,Larry Ellison也在開幕演講中重點介紹了12c的一些新特性。對於Oracle DBA來說,雖然數據庫12c正式發佈的日期還要等到明年年初,但依舊希望能夠提前瞭解它的一些新功能、新特性。在OpenWorld 2012的技術講座環節,Oracle技術大師Tom Kyte集中介紹了Oracle Database 12c的十二大新特性,而Oracle ACE總監楊廷琨也對此進行了總結,希望讓國內DBA一睹爲快。

 

Oracle數據庫技術大牛Tom Kyte講解Oracle Database 12c的新特性

  1.PL/SQL性能增強:類似在匿名塊中定義過程,現在可以通過WITH語句在SQL中定義一個函數,採用這種方式可以提高SQL調用的性能。

 

  2.改善Defaults:包括序列作爲默認值;自增列;當明確插入NULL時指定默認值;METADATA-ONLY default值指的是增加一個新列時指定的默認值,和11g中的區別在於,11g的default值要求NOT NULL列。

 

  3.放寬多種數據類型長度限制:增加了VARCHAR2、NVARCHAR2和RAW類型的長度到32K,要求兼容性設置爲12.0.0.0以上,且設置了初始化參數MAX_SQL_STRING_SIZE爲EXTENDED,這個功能不支持CLUSTER表和索引組織表;最後這個功能並不是真正改變了VARCHAR2的限制,而是通過OUT OF LINE的CLOB實現。

 

  4.TOP N的語句實現:在SELECT語句中使用“FETCH next N rows”或者“OFFSET”,可以指定前N條或前百分之多少的記錄。

 

  5.行模式匹配:類似分析函數的功能,可以在行間進行匹配判斷並進行計算。在SQL中新的模式匹配語句是“match_recognize”。

 

  6.分區改進:Oracle Database 12c中對分區功能做了較多的調整,Oracle ACE總監楊廷琨花了較大的篇幅對分區提升進行了解讀,其中共分成6個部分:


•INTERVAL-REFERENCE分區:把11g的interval分區和reference分區結合,這樣主表自動增加一個分區後,所有的子表、孫子表、重孫子表、重重重...孫子表都可以自動隨着外接列新數據增加,自動創建新的分區。
•TRUNCATE和EXCHANGE分區及子分區。無論是TRUNCATE還是EXCHANGE分區,在主表上執行,都可以級聯的作用在子表、孫子表、重孫子表、重重重...孫子表上同時運行。對於TRUNCATE而言,所有表的TRUNCATE操作在同一個事務中,如果中途失敗,會回滾到命令執行之前的狀頭。這兩個功能通過關鍵字CASCADE實現。
•在線移動分區:通過MOVE ONLINE關鍵字實現在線分區移動。在移動的過程中,對錶和被移動的分區可以執行查詢、DML語句以及分區的創建和維護操作。整個移動過程對應用透明。這個功能極大的提高了整體可用性,縮短了分區維護窗口。
•多個分區同時操作:可以對多個分區同時進行維護操作,比如將一年的12個分區MERGE到1個新的分區中,比如將一個分區SPLIT成多個分區。可以通過FOR語句指定操作的每個分區,對於RANGE分區而言,也可以通過TO來指定處理分區的範圍。多個分區同時操作自動並行完成。
•異步全局索引維護:對於非常大的分區表而言,UPDATE GLOBAL INDEX不再是痛苦。Oracle可以實現了異步全局索引異步維護的功能,即使是幾億條記錄的全局索引,在分區維護操作,比如DROP或TRUNCATE後,仍然是VALID狀態,索引不會失效,不過索引的狀態是包含OBSOLETE數據,當維護操作完成,索引狀態恢復。
•部分本地和全局索引:Oracle的索引可以在分區級別定義。無論全局索引還是本地索引都可以在分區表的部分分區上建立,其他分區上則沒有索引。當通過索引列訪問全表數據時,Oracle通過UNION ALL實現,一部分通過索引掃描,另一部分通過全分區掃描。這可以減少對歷史數據的索引量,極大的增加了靈活性。

  7.Adaptive執行計劃:擁有學習功能的執行計劃,Oracle會把實際運行過程中讀取到返回結果作爲進一步執行計劃判斷的輸入,因此統計信息不準確或查詢真正結果與計算結果不準時,可以得到更好的執行計劃。

 

  8.統計信息增強:動態統計信息收集增加第11層,使得動態統計信息收集的功能更強;增加了混合統計信息用以支持包含大量不同值,且個別值數據傾斜的情況;添加了數據加載過程收集統計信息的能力;對於臨時表增加了會話私有統計信息。

 

  9.臨時UNDO:將臨時段的UNDO獨立出來,放到TEMP表空間中,優點包括:減少UNDO產生的數量;減少REDO產生的數量;在ACTIVE DATA GUARD上允許對臨時表進行DML操作。

 

  10.數據優化:新增了ILM(數據生命週期管理)功能,添加了“數據庫熱圖”(Database heat map),在視圖中直接看到數據的利用率,找到哪些數據是最"熱"的數據。可以自動實現數據的在線壓縮和數據分級,其中數據分級可以在線將定義時間內的數據文件轉移到歸檔存儲,也可以將數據表定時轉移至歸檔文件。也可以實現在線的數據壓縮。

 

  11.應用連續性:Oracle Database 12c之前RAC的FAILOVER只做到SESSION和SELECT級別,對於DML操作無能爲力,當設置爲SESSION,進行到一半的DML自動回滾;而對於SELECT,雖然FAILOVER可以不中斷查詢,但是對於DML的問題更甚之,必要要手工回滾。而Oracle Database 12c中Oracle終於支持事務的FAILOVER。

 

  12.Oracle Pluggable Database:Oracle PDB體系結構由一個容器數據庫(CDB)和多個可組裝式數據庫(PDB)構成,PDB包含獨立的系統表空間和SYSAUX表空間等,但是所有PDB共享CDB的控制文件、日誌文件和UNDO表空間。

 

  Oracle Database 12c中增加了諸多的新特性,而上面介紹的只是其中的一些重點值得關注的12點。關於Oracle Database 12c的內容,敬請關注TechTarget數據庫網站的更新報道,同時也可以關注作者楊廷琨的微博獲得更多的技術細節。

 


TechTarget中國原創內容,原文鏈接:http://www.searchdatabase.com.cn/showcontent_66349.htm

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章