Oracle 11G新特性
(共36個)
一、資料庫管理部分
· 1、 資料庫重演(Database Replay)
這一特性可以捕捉整個資料的負載,並且傳遞到一個從備份或者standby資料庫中建立的測試資料庫上,然後重演負載以測試系統調優後的效果。
· 2、 SQL重演(SQLReplay)
和前一屬性類別似。但是只是捕捉SQL負載部分,而不是全部負載。
· 3、計劃管理(Plan Management)
這一特性允許你將某一特定語句的查詢計劃固定下來,無論統計資料變化還是資料庫版本變化都不會改變它的查詢計劃。
4、自動診斷知識庫(Automatic
Diagnostic RepositoryADR)
當Oracle探測到重要錯誤時,會自動建立一個事件(incident),並且捕捉到和這一事件相關的資訊,同時自動進行資料庫健全狀態檢查並通知DBA。此外,這些資訊還可以打包發送給Oracle支援小組。
· 5、事件打包服務(Incident Packaging Service)
如果你需要進一步測試或者保留相關資訊,這一特性可以將與某一事件相關的資訊打包。並且你還可以將打包資訊發給oracle支援小組。
· 6、基於特性打補丁(Feature Based Patching)
在打補丁包時,這一特性可以使你很容易區分出補丁包中的那些特性是你正在使用而必須打的。企業管理器(EM)使你能訂閱一個基於特性的補丁服務,因此企業管理器可以自動掃描那些你正在使用的特性有補丁可以打。
7、自動SQL最佳化(Auto SQLTuning)
10g的自動最佳化建議器可以將最佳化建議寫在SQL profile中。而在11g中,你可以讓oracle自動將能3倍於原有效能的profile應用到SQL語句上。效能比較由維護視窗中一個新管理工作來完成。
· 8、 訪問建議器(Access Advisor)
11g的訪問建議器可以給出分區建議,包括對新的間隔分區(interval partitioning)的建議。間隔分區相當於定界分割(rangepartitioning)的自動化版本,它可以在必要時自動建立一個相同大小的分區。定界分割和間隔分區可以同時存在於一張表中,並且定界分割可以轉換為間隔分區。
· 9、 自動記憶體最佳化(Auto Memory Tuning)
在9i中,引入了自動PGA最佳化;10g中,又引入了自動SGA最佳化。到了11g,所有記憶體可以通過只設定一個參數來實現全表自動最佳化。你只要告訴oracle有多少記憶體可用,它就可以自動指定多少記憶體配置給PGA、多少記憶體配置給SGA和多少記憶體配置給作業系統進程。當然也可以設定最大、最小閾值。
10、資源管理員(Resource Manager)
11g的資源管理員不僅可以管理CPU,還可以管理IO。你可以設定特定檔案的優先順序、檔案類型和ASM磁碟組。
11、ADDM
ADDM在10g被引入。11g中,ADDM不僅可以給單個執行個體建議,還可以對整個RAC(即資料庫層級)給出建議。另外,還可以將一些指示(directive)加入ADDM,使之忽略一些你不關心的資訊。
· 12、AWR 基準(AWRBaselines)
AWR基準得到了擴充。可以為一些其他使用到的特性自動建立基準。預設會建立周基準。
二、 PLSQL部分
· 1、結果集緩衝(Result Set Caching)
這一特效能大大提高很多程式的效能。在一些MIS系統或者OLAP系統中,需要使用到很多"select count(*)"這樣的查詢。在之前,我們如果要提高這樣的查詢的效能,可能需要使用物化視圖或者查詢重寫的技術。在11g,我們就只需要加一個/*+result_cache*/的提示就可以將結果集緩衝住,這樣就能大大提高查詢效能。當然,在這種情況下,我們可能還要關心另外一個問題:完整性。因為在oracle中是通過一致性讀來保證資料的完整性的。而顯然,在這種新特性下,為提高效能,是從緩衝中的結果集中讀取資料,而不會從復原段中讀取資料的。關於這個問題,答案是完全能保證完整性。因為結果集是被獨立緩衝的,在查詢期間,任何其他DML語句都不會影響結果集中的內容,因而可以保證資料的完整性。
· 2、對象依賴性改進
在11g之前,如果有函數或者視圖依賴於某張表,一旦這張表發生結構變化,無論是否涉及到函數或視圖所依賴的屬性,都會使函數或視圖變為invalid。在11g中,對這種情況進行了調整:如果表改變的屬性與相關的函數或視圖無關,則相關對象狀態不會發生變化。
· 3、Regex的改進
在10g中,引入了Regex。這一特性大大方便了開發人員。11g,oracle再次對這一特性進行了改進。其中,增加了一個名為regexp_count的函數。另外,其他的Regex函數也得到了改進。
· 4、新SQL文法 =>
我們在調用某一函數時,可以通過=>來為特定的函數參數指定資料。而在11g中,這一文法也同樣可以出現在sql語句中了。例如,你可以寫這樣的語句:
select f(x=>6)from dual;
· 5、對TCP包(utl_tcp、utl_smtp…)支援FGAC(Fine Grained AccessControl)安全控制
· 6、增加了唯讀表(read-only table)
在以前,我們是通過觸發器或者約束來實現對錶的唯讀控制。11g中不需要這麼麻煩了,可以直接指定表為唯讀表。
7、內部單元內聯(Intra-Unitinlining)
在C語言中,你可以通過內嵌函式(inline)或者宏實現使某些小的、被頻繁調用的函數內聯,編譯後,調用內嵌函式的部分會編譯成內嵌函式的函數體,因而提高函數效率。在11g的plsql中,也同樣可以實現這樣的內嵌函式了。
· 8、設定觸發器順序
可能在一張表上存在多個觸發器。在11g中,你可以指定它們的觸發順序,而不必擔心順序混亂導致資料混亂。
9、混合觸發器(compound trigger)
這是11g中新出現的一種觸發器。它可以讓你在同一觸發器中同時具有聲明部分、before過程部分、after each row過程部分和after過程部分。
· 10、 建立無效觸發器(Disabled Trigger)
11g中,開發人員可以可以先建立一個invalid觸發器,需要時再編譯它。
· 11、在非DML語句中使用序列(sequence)
在之前版本,如果要將sequence的值賦給變數,需要通過類似以下語句實現:
select seq_x.next_val into v_x from dual;
在11g中,不需要這麼麻煩了,下面語句就可以實現:
v_x :=seq_x.next_val;
· 12、PLSQL_Warning
在11g中可以通過設定PLSQL_Warning=enable all,如果在"when others"沒有錯誤爆出就發警告資訊。
· 13、PLSQL的可繼承性
可以在oracle物件類型中通過super(和java中類似)關鍵字來實現繼承性。
· 14、編譯速度提高
因為不在使用外部C編譯器了,因此編譯速度提高了。
· 15、改進了DBMS_SQL包
其中的改進之一就是DBMS_SQL可以接收大於32k的CLOB了。另外還能支援使用者自訂類型和bulk操作。
· 16、增加了continue關鍵字
在PLSQL的迴圈語句中可以使用continue關鍵字了(功能和其他進階語言中的continue關鍵字相同)。
· 17、新的PLSQL資料類型——simple_integer
這是一個比pls_integer效率更高的整數資料類型。
三、其他部分
· 1、增強壓縮技術
可以最多壓縮2/3的空間。
· 2、高速推進技術
可以大大提高對檔案系統的資料讀取速度。
· 3、增強了DATA Guard
可以建立standby資料庫的快照,用於測試。結合資料庫重演技術,可以實現類比產生系統負載的壓力測試
· 4、線上應用升級
也就是熱補丁——安裝升級或打補丁不需要重啟資料庫
· 5、資料庫修複建議器
可以在錯誤診斷和解決方案實施過程中指導DBA。
· 6、邏輯對象分區
可以對邏輯對象進行分區,並且可以自動建立分區以方便管理超大資料庫(Very Large Databases VLDBs
· 7、新的高效能的LOB基礎結構
========================================================
Oracle 專家QQ群:60632593(已滿)、60618621、23145225
部落格:blog.csdn.net/newhappy2008
========================================================