由Oralce8.1開始,Oracle增加了一個新的特性就是Stored Outlines,或者稱為Plan Stability(計劃穩定性)。這個特性帶來三個好處。首先,你可以優化開銷很大的語句的處理。第二,如果有一些語句Oracle需要花費長時間來優化(而不是執行),你可以節省時間并且減少優化階段的競爭。最后,它可以讓你選擇使用新的cursor_sharing參數而無需要擔心因此而不采用優化的執行路徑。
要知道如何使用存儲概要才是最優的,我們首先運行一些極度沒有效率的SQL的存儲過程開始,要注意的是,我們不能修改源代碼(理論上)。
我們將看一下如何跟蹤SQL語句,并且查看它當前在數據庫中的執行計劃,找出一些提示來改進SQL語句的性能,然后再重新執行該SQL語句時,讓Oracle使用我們的提示。
在這個示例中,我們將創建一個用戶,在該用戶的模式中建一個表格,并且創建一個存儲過程訪問該表格,我們將在這個存儲過程上使用wrap工具,這樣我們就不能通過反向方式得到源代碼。然后我們將通過該存儲過程來調試SQL的執行。
例子中我們將假定存儲慨要已經在數據庫創建的時候被自動安裝。
準備工作
創建一個用戶,他的權限有:create session, create table, create procedure, create any outline, and alter session。以該用戶連接并且運行以下的腳本來創建一個表格:
接著需要編碼來創建一個存儲過程訪問該表格。創建一個稱為c_proc.sql的腳本,如下:
當然,也可以直接執行這個腳本來建立該過程--不過,為了更有效果,轉到操作系統的命令行并且執行以下命令:
wrap iname=c_proc.sql
響應是:
Processing c_proc.sql to c_proc.plb
這里不是通過執行c_proc.sql腳本來產生該過程,而是執行看不到源碼的c_proc.plb腳本,你將會發現在user_source的視圖中找不到我們的SQL語句。
[NextPage]
這個應用的作用是什么?
[1] [2] 下一頁
正在看的ORACLE教程是:解析Oracle 8i/9i的計劃穩定性。sp;demo;
[NextPage]
由開發到生成環境
上一頁
上一頁 [1] [2]
新聞熱點
疑難解答