oracle變數繫結

2021-08-27 22:38:17 字數 658 閱讀 8477

一、游標:游標可以理解為sql語句的乙個控制代碼,也叫sql語句的指標,游標指向一條sql語句,oracle會話要執行一條sql時,首先要開啟游標。

二、sql解析的過程:

硬解析步驟:

1.對sql語句進行語法檢查,看是否有語法錯誤

2.通過資料字典,檢查sql語句中涉及的物件和列是否存在

3.檢查sql語句的使用者是否對涉及的物件有許可權

4.通過優化器建立乙個最優的執行計畫。這個過程會根據資料字典中物件的統計資訊來計算多個執行計畫的cost,從而得到乙個最優的執行計畫。這一步涉及到大量的資料運算,從而消耗大量的cpu資源。(library cache最主要的目的就是通過軟解析來減少這個步驟);

5.將該游標產生的執行計畫,sql文字等裝載進library cache中的heap中

軟解析:

所謂軟解析,就是因為相同文字的sql語句存在於library cache中,所以本次sql語句的解析就可以去掉硬解析的多個步驟。從而節省大量的資源的消耗

軟軟解析:

所謂的軟軟解析,就是沒有任何解析過程。當設定了session_cached_cursors引數時,當某個session第三次執行相同的sql語句時,則會把該sql語句的游標快取到pga中。這樣當該session在執行該sql語句時,會直接從pga中取出執行計畫,從而跳過解析的所有步驟

oracle 繫結變數

不太喜歡看到在procedure用 拼接sql的語句 所以貼了個繫結變數的例子,僅供參考 create or replace procedure using test t name nvarchar2 as v id char v char begin execute immediate selec...

Oracle 繫結變數用法

在oracle 中,對於乙個sql語句,存在兩種可選的解析過程,一種是硬解析,一種是軟解析.乙個硬解析需要經解析,制定執行路徑,優化訪問計畫等許多的步驟.硬解釋不僅僅耗費大量的cpu,更重要的是會佔據重要的們閂資源,嚴重影響了系統的併發效率。當乙個sql語句提交後,oracle會首先檢查一下共享緩衝...

oracle 動態sql 繫結變數

無繫結變數的非sql查詢 declare v sql varchar2 4000 begin 使用execute immediate執行動態sql,最後提交事物 v sql create table account id number 3 not null,name varchar2 50 not ...