在oracle 中,對於乙個提交的sql語句,存在兩種可選的解析過程, 一種叫做硬解析,一種叫做軟解析.
乙個硬解析需要經解析,制定執行路徑,優化訪問計畫等許多的步驟.硬解析不僅僅耗費大量的cpu,更重要的是會佔據重要的們閂(latch)資源,嚴重的影響系統的規模的擴大(即限制了系統的並發行), 而且引起的問題不能通過增加記憶體條和cpu的數量來解決。之所以這樣是因為門閂是為了順序訪問以及修改一些記憶體區域而設定的,這些記憶體區域是不能被同時修改。當乙個sql語句提交後,oracle會首先檢查一下共享緩衝池(shared pool)裡有沒有與之完全相同的語句,如果有的話只須執行軟分析即可,否則就得進行硬分析。
要復用快取語句,sql語句必須與快取中的語句相同。
查詢shared pool 中的sql可以使用 v$sql 檢視。
pl/sql 繫結變數例子:
上面這條語句執行了1000次硬解析,因為每條語句都不一樣,不能共享。
下面的語句則使用到了共享:
檢視shared pool中,只找到了一條語句說明使用了繫結變數。
注意點:
1. execute immediate將不會提交乙個dml事務執行,應該顯式提交
PL SQL 游標變數
start 游標變數非常有用,游標變數可以在不同的儲存過程中傳遞,也可以返回給客戶端。create table student id int not null,name varchar2 30 not null,class varchar2 10 insert into student values...
PLSQL程式設計2 PLSQL變數
plsql變數有兩種 1.基本資料型別 1 數值型別 number,pls integer,binary integer,number number型別是最常用的數值型別,number型別可以相容整型和浮點型的資料型別,可以指定資料的範圍,用法如number 9,2 9表示資料的刻度,只能有9位,而...
PLSQL系列 1 變數
1.標量變數 標量變數是指只能存放單個數值的變數。定義標量變數 identifier constant datatype not null default expr default 用於為變數和常量指定初始值。expr 用於指定初始值的plsql表示式,可以是文字值 其他變數 函式等。2.復合變數 ...