當前位置:編程學習大全網 - 編程語言 - Oracle 11g的PLSQL部分

Oracle 11g的PLSQL部分

·結果集緩存(Result Set Caching)

這壹特性能大大提高很多程序的性能。在壹些MIS系統或者OLAP系統中,需要使用到很多select count(*)這樣的查詢。在之前,我們如果要提高這樣的查詢的性能,可能需要使用物化視圖或者查詢重寫的技術。在11g,我們就只需要加壹個 /*+result_cache*/的提示就可以將結果集緩存住,這樣就能大大提高查詢性能。當然,在這種情況下,我們可能還要關心另外壹個問題:完整性。因為在oracle中是通過壹致性讀來保證數據的完整性的。而顯然,在這種新特性下,為提高性能,是從緩存中的結果集中讀取數據,而不會從回滾段中讀取數據的。關於這個問題,答案是完全能保證完整性。因為結果集是被獨立緩存的,在查詢期間,任何其他DML語句都不會影響結果集中的內容,因而可以保證數據的完整性。

·對象依賴性改進

在11g之前,如果有函數或者視圖依賴於某張表,壹旦這張表發生結構變化,無論是否涉及到函數或視圖所依賴的屬性,都會使函數或視圖變為invalid。在11g中,對這種情況進行了調整:如果表改變的屬性與相關的函數或視圖無關,則相關對象狀態不會發生變化。

·正則表達式的改進

在10g中,引入了正則表達式。這壹特性大大方便了開發人員。11g,oracle再次對這壹特性進行了改進。其中,增加了壹個名為regexp_count的函數。另外,其他的正則表達式函數也得到了改進。

·新SQL語法 =>

我們在調用某壹函數時,可以通過=>來為特定的函數參數指定數據。而在11g中,這壹語法也同樣可以出現在sql語句中了。例如,妳可以寫這樣的語句:

select f(x=>6) from dual;

·對TCP包(utl_tcp、utl_smtp…)支持FGAC(Fine Grained Access Control)安全控制

·增加了只讀表(read-only table)

在以前,我們是通過觸發器或者約束來實現對表的只讀控制。11g中不需要這麽麻煩了,可以直接指定表為只讀表。

·觸發器執行效率提高了

·內部單元內聯(Intra-Unit inlining)

在C語言中,妳可以通過內聯函數(inline)或者宏實現使某些小的、被頻繁調用的函數內聯,編譯後,調用內聯函數的部分會編譯成內聯函數的函數體,因而提高函數效率。在11g的plsql中,也同樣可以實現這樣的內聯函數了。

·設置觸發器順序

可能在壹張表上存在多個觸發器。在11g中,妳可以指定它們的觸發順序,而不必擔心順序混亂導致數據混亂。

·混合觸發器(compound trigger)

這是11g中新出現的壹種觸發器。她可以讓妳在同壹觸發器中同時具有申明部分、before過程部分、after each row過程部分和after過程部分。

·創建無效觸發器(Disabled Trigger)

11g中,開發人員可以可以閑創建壹個invalid觸發器,需要時再編譯她。

·在非DML語句中使用序列(sequence)

在之前版本,如果要將sequence的值賦給變量,需要通過類似以下語句實現:

select seq_x.next_val into v_x from dual;

在11g中,不需要這麽麻煩了,下面語句就可以實現:

v_x := seq_x.next_val;

·PLSQL_Warning

11g中。可以通過設置PLSQL_Warning=enable all,如果在when others沒有錯誤爆出就發警告信息。

·PLSQL的可繼承性

可以在oracle對象類型中通過super(和java中類似)關鍵字來實現繼承性。

·編譯速度提高

因為不再使用外部C編譯器了,因此編譯速度提高了。

·改進了DBMS_SQL包

其中的改進之壹就是DBMS_SQL可以接收大於32k的CLOB了。另外還能支持用戶自定義類型和bulk操作。

·增加了continue關鍵字

在PLSQL的循環語句中可以使用continue關鍵字了(功能和其他高級語言中的continue關鍵字相同)。

·新的PLSQL數據類型——simple_integer

這是壹個比pls_integer效率更高的整數數據類型。

  • 上一篇:電腦遊戲手柄怎麽使用!!!
  • 下一篇:新經濟增長模型 經濟增長模型有哪些
  • copyright 2024編程學習大全網