解析有兩種:硬解析和軟解析
parse
1、從共享池的庫緩衝區中搜尋,該語句是否曾經執行過,凡是執行過的sql語句,oracle會使用hash函式進行計算,產生乙個很小的文字記錄,如果是第一次執行,則進入第二步。
2、檢查語句、許可權等等(許可權資訊是存放在oracle的資料字典中,oracle先從共享池的資料字典緩衝區搜尋,如果沒有找到,就從資料檔案中找,system表空間的資料檔案當中讀取,然後存放到共享池的資料字典緩衝區,以便共享)
3、分析過程中,對訪問到的表進行鎖操作,目的是為了保護表的結構不被修改
4、oracle優化器會根據資料的儲存結構(表儲存結構,索引)統計資訊等,計算各種讀取代價,選擇一條最佳的路徑(代價最低的),生成執行計畫,同事編譯病儲存在共享池中,以便共享;
bind------特別是oltp
繫結變數,這樣一條語句就可以被多次共享了。
execute(執行)
先從資料緩衝區查詢資料,如果沒有,再從資料檔案讀取資料到緩衝區,儲存以便共享。
fetch
把結果返回給使用者
硬解析就是全部執行以上4步的過程
軟解析就是直接第4步(從緩衝區拿資料)
Oracle SQL語句解析過程
目錄 oracle sql語句解析過程 1 軟硬解析 2 sql解析過程 sql語句在到達oracle例項後,需要先進行解析,分析出最優的執行計畫後,再按照執行計畫,開始執行sql。根據能否復用執行計畫,解析過程可以分析以下兩大類 注意 oracle中只有完全相同的語句,包大小寫 空格 換行都要求一...
Oracle sql執行過程
每種型別的語句都要執行的全過程 1 create a cursor 建立游標 2 parse the statement 分析語句 5 bind any variables 繫結變數 7 run the statement 執行語句 9 close the cursor 關閉游標 如果使用了並行功能...
五 Oracle SQL(儲存過程)
7.1.1 定義 所謂儲存過程,就是一段儲存在資料庫中執行某塊業務功能的程式模組。它是由一段或者多段的pl sql 塊或者sql語句組成的一系列 塊。7.1.2 結構分析create or replace procedure 過程名 p1 in out datatype,p2 in out data...