學習 Oracle執行語句的過程

2021-06-05 03:41:48 字數 508 閱讀 7585

1、parse

1) 從共享池的庫緩衝區中搜尋,該語句是否曾經執行過,凡是執行過的sql語句,oracle會使用hash函式進行計算,產生乙個很小的文字記錄。如果是第一次執行,則進入第二步。

2) 檢查語法、許可權等等(許可權的資訊是存放在oracle的資料字典當中的),oracle先從共享池的資料字典緩衝區中搜尋,如果沒有找到,再從資料檔案(system表空間的資料檔案)當中讀取,然後存放在共享池的資料字典緩衝區中,以便共享。

3) 分析過程中,對訪問到得表進行鎖操作,目的是為了保護表的結構不被修改。

4) oracle優化器會根據資料的儲存結構(表的儲存結構,索引)統計資訊等。計算各種讀取的代價,選擇一條最佳路徑(代價最低),生成執行計畫,同時編譯並儲存在共享池的庫緩衝區中,以便共享。

2、bind

繫結變數

3、execute

先從資料緩衝區查詢資料,如果沒有,再從資料檔案中讀取資料到資料緩衝區,儲存,以便共享。

4、fetch

把結果返回給使用者。

oracle語句執行過程

shared pool 是快取sql語句以及sql語句對應的執行計畫 server process 前端程序 找shared pool中是否已經快取了sql語句和執行計畫,如果沒有,則解析執行計畫並放入shared pool中,如果有,則執行使用shared pool中快取 的執行計畫,減少了解析s...

Oracle的sql語句執行過程

sql語句的執行過程 1.連線方式 2.查詢語句的執行過程 1 語句解析 a 檢查庫快取,有無執行過相同的sql語句 沒有,進入b 有,進入2 b 檢查語法 關鍵字 c 檢查語義 表名,列名 d 獲得解析鎖 e 核對訪問許可權 f 確定執行計畫 explain plan g 儲存執行計畫到快取區 2...

Oracle執行SQL語句的過程

當我們提交一條sql語句時,oracle會做哪些操作呢?oracle會為每個使用者程序分配乙個伺服器程序 service process 實際情況應該區分專用伺服器和共享伺服器 當service process接收到使用者程序提交的sql語句時,伺服器程序會對sql語句進行語法和詞法分析。名詞解釋 ...