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

12C細(xì)節(jié)






























|