Oracle11g和12c的比較
一.差異比較 11g
1) oracle 11g在DBA管理上有很多完善,大大提升了DBA對數(shù)據(jù)庫的管控能力,提供的很多自動特性,增強了調(diào)優(yōu),備份恢復,錯誤診斷等的功能,大大減輕DBA的低端管理工作; 相對來說,這個版本的升級比較平滑一些;
2) 合并和擴展oracle的功能以實現(xiàn)網(wǎng)格計算的優(yōu)勢,將數(shù)據(jù)中心從分散的系統(tǒng)資源孤島轉(zhuǎn)換為包含服務(wù)器和存儲的共享池。
3)GI提供更強大的oracleASM支持,GI作為集群軟件除了支持數(shù)據(jù)庫集群,還支持timesten的集群。
12c
1) 實現(xiàn)云數(shù)據(jù)庫的支持,提供云平臺管理,這是11所沒有的。
2) oracle12c增加了CDB和PDB的概念。
CDB全稱為Container Database, 數(shù)據(jù)庫容器;
PDB全稱為Pluggable Database,即可插拔數(shù)據(jù)庫。
在Oracle 12C之前,實例與數(shù)據(jù)庫是一對一或多對一關(guān)系(RAC):即一個實例只能與一個數(shù)據(jù)庫相關(guān)聯(lián),數(shù)據(jù)庫可以被多個實例所加載。
而實例與數(shù)據(jù)庫不可能是一對多的關(guān)系。當進入oracle 12C后,實例與數(shù)據(jù)庫可以是一對多的關(guān)系。也就是說12c里面會在CDB下創(chuàng)建多個PDB,每個PDB類似于11g里面的實例,然后一個CDB下的各個PDB是相互隔離的。
3) 數(shù)據(jù)庫云和數(shù)據(jù)庫
4) 高可用和數(shù)據(jù)保護
公共操作在cdb級別執(zhí)行,將多個數(shù)據(jù)庫作為一個管理(升級,高可用,備份)
5) 內(nèi)存數(shù)據(jù)庫
6) 大數(shù)據(jù)看和數(shù)據(jù)分析
7) 數(shù)據(jù)庫安全
8) 存儲最優(yōu)化
9) 數(shù)據(jù)庫云管理
10) pdb的拔出和插入 二12c特性
1.PL/SQL性能增強:類似在匿名塊中定義過程,現(xiàn)在可以通過WITH語句在SQL中定義一個函數(shù),采用這種方式可以提高SQL調(diào)用的性能。
2.改善Defaults:包括序列作為默認值;自增列;當明確插入NULL時指定默認值;METADATA-ONLY default值指的是增加一個新列時指定的默認值,和11g中的區(qū)別在于,11g的default值要求NOT NULL列。
3.放寬多種數(shù)據(jù)類型長度限制:增加了VARCHAR2、NVARCHAR2和RAW類型的長度到32K,要求兼容性設(shè)置為12.0.0.0以上,且設(shè)置了初始化參數(shù)MAX_SQL_STRING_SIZE為EXTENDED,這個功能不支持CLUSTER表和索引組織表;最后這個功能并不是真正改變了VARCHAR2的限制,而是通過OUT OF LINE的CLOB實現(xiàn)。
4.TOP N的語句實現(xiàn):在SELECT語句中使用“FETCH next N rows”或者“OFFSET”,可以指定前N條或前百分之多少的記錄。
5.行模式匹配:類似分析函數(shù)的功能,可以在行間進行匹配判斷并進行計算。在SQL中新的模式匹配語句是“match_recognize”
6.分區(qū)改進:Oracle Database 12c中對分區(qū)功能做了較多的調(diào)整,Oracle ACE總監(jiān)楊廷琨花了較大的篇幅對分區(qū)提升進行了解讀,其中共分成6個部分:
INTERVAL-REFERENCE分區(qū):把11g的interval分區(qū)和reference分區(qū)結(jié)合,這樣主表自動增加一個分區(qū)后,所有的子表、孫子表、重孫子表、重重重…孫子表都可以自動隨著外接列新數(shù)據(jù)增加,自動創(chuàng)建新的分區(qū)。
TRUNCATE和EXCHANGE分區(qū)及子分區(qū)。無論是TRUNCATE還是EXCHANGE分區(qū),在主表上執(zhí)行,都可以級聯(lián)的作用在子表、孫子表、重孫子表、重重重…孫子表上同時運行。對于TRUNCATE而言,所有表的TRUNCATE操作在同一個事務(wù)中,如果中途失敗,會回滾到命令執(zhí)行之前的狀頭。這兩個功能通過關(guān)鍵字CASCADE實現(xiàn)
在線移動分區(qū):通過MOVE ONLINE關(guān)鍵字實現(xiàn)在線分區(qū)移動。在移動的過程中,對表和被移動的分區(qū)可以執(zhí)行查詢、DML語句以及分區(qū)的創(chuàng)建和維護操作。整個移動過程對應(yīng)用透明。這個功能極大的提高了整體可用性,縮短了分區(qū)維護窗口。
多個分區(qū)同時操作:可以對多個分區(qū)同時進行維護操作,比如將一年的12個分區(qū)MERGE到1個新的分區(qū)中,比如將一個分區(qū)SPLIT成多個分區(qū)??梢酝ㄟ^FOR語句指定操作的每個分區(qū),對于RANGE分區(qū)而言,也可以通過TO來指定處理分區(qū)的范圍。多個分區(qū)同時操作自動并行完成。
異步全局索引維護:對于非常大的分區(qū)表而言,UPDATE GLOBAL INDEX不再是痛苦。Oracle可以實現(xiàn)了異步全局索引異步維護的功能,即使是幾億條記錄的全局索引,在分區(qū)維護操作,比如DROP或TRUNCATE后,仍然是VALID狀態(tài),索引不會失效,不過索引的狀態(tài)是包含OBSOLETE數(shù)據(jù),當維護操作完成,索引狀態(tài)恢復。
部分本地和全局索引:Oracle的索引可以在分區(qū)級別定義。無論全局索引還是本地索引都可以在分區(qū)表的部分分區(qū)上建立,其他分區(qū)上則沒有索引。當通過索引列訪問全表數(shù)據(jù)時,Oracle通過UNION ALL實現(xiàn),一部分通過索引掃描,另一部分通過全分區(qū)掃描。這可以減少對歷史數(shù)據(jù)的索引量,極大的增加了靈活性。
7.Adaptive執(zhí)行計劃:擁有學習功能的執(zhí)行計劃,Oracle會把實際運行過程中讀取到返回結(jié)果作為進一步執(zhí)行計劃判斷的輸入,因此統(tǒng)計信息不準確或查詢真正結(jié)果與計算結(jié)果不準時,可以得到更好的執(zhí)行計劃。
8.統(tǒng)計信息增強:動態(tài)統(tǒng)計信息收集增加第11層,使得動態(tài)統(tǒng)計信息收集的功能更強;增加了混合統(tǒng)計信息用以支持包含大量不同值,且個別值數(shù)據(jù)傾斜的情況;添加了數(shù)據(jù)加載過程收集統(tǒng)計信息的能力;對于臨時表增加了會話私有統(tǒng)計信息。
9.臨時UNDO:將臨時段的UNDO獨立出來,放到TEMP表空間中,優(yōu)點包括:減少UNDO產(chǎn)生的數(shù)量;減少REDO產(chǎn)生的數(shù)量;在ACTIVE DATA GUARD上允許對臨時表進行DML操作。
10.數(shù)據(jù)優(yōu)化:新增了ILM(數(shù)據(jù)生命周期管理)功能,添加了“數(shù)據(jù)庫熱圖”(Database heat map),在視圖中直接看到數(shù)據(jù)的利用率,找到哪些數(shù)據(jù)是最”熱”的數(shù)據(jù)??梢宰詣訉崿F(xiàn)數(shù)據(jù)的在線壓縮和數(shù)據(jù)分級,其中數(shù)據(jù)分級可以在線將定義時間內(nèi)的數(shù)據(jù)文件轉(zhuǎn)移到歸檔存儲,也可以將數(shù)據(jù)表定時轉(zhuǎn)移至歸檔文件。也可以實現(xiàn)在線的數(shù)據(jù)壓縮。
11.應(yīng)用連續(xù)性:Oracle Database 12c之前RAC的FAILOVER只做到SESSION和SELECT級別,對于DML操作無能為力,當設(shè)置為SESSION,進行到一半的DML自動回滾;而對于SELECT,雖然FAILOVER可以不中斷查詢,但是對于DML的問題更甚之,必要要手工回滾。而Oracle Database 12c中Oracle終于支持事務(wù)的FAILOVER。
12.Oracle Pluggable Database:Oracle PDB體系結(jié)構(gòu)由一個容器數(shù)據(jù)庫(CDB)和多個可組裝式數(shù)據(jù)庫(PDB)構(gòu)成,PDB包含獨立的系統(tǒng)表空間和SYSAUX表空間等,但是所有PDB共享CDB的控制文件、日志文件和UNDO表空間。

12C細節(jié)






























|