Oracle 一條 sql 語句執行原理 面試題

2021-10-23 20:09:26 字數 832 閱讀 5972

1. 思考:通常,執行一條 sql 語句,立馬能返回結果,

但是,在 oracle 內部,是如何處理這條 sql 語句的呢?

2. 考點

(1) 主要流程

四大步驟

(2) 主要程序

'伺服器程序' 將 '資料塊' 從 '資料檔案' 讀取至 '資料庫緩衝區快取'

'dbwn' 後台程序則將 '資料塊' 從 '資料庫緩衝區快取' 寫入 '資料檔案'

一條 sql 語句執行原理解釋:

1. 語句獲取

(1)'使用者程序' 將 sql 語句傳送給 '伺服器程序'(2

) 具體的處理邏輯都在 '伺服器程序' 中

2. 語句解析

(1) 查詢快取記憶體(library cache),若有,直接進入 '3. 語句執行'(2

) 語法檢查 :語法規則

(3) 語義檢查 :表名、列名等

(4) 獲得物件鎖 :保護資料的一致性

(5) 使用者許可權檢查 :使用者是否擁有訪問該資料的許可權

(6) 確定最佳執行計畫:伺服器自我優化

3. 語句執行

(1) 直接查詢 資料庫緩衝區快取(database buffer cache)

(2) 若沒有,則將 '資料檔案' 讀取至 '資料庫緩衝區快取'

4. 語句提取

(1)'伺服器程序' 將語句執行結果返回給 '使用者程序'

2 2 執行一條SQL語句

對資料庫執行一條sql語句 1 mixed mysqli query mysqli link,string query,int resultmode mysqli store result 1 對於insert,update,delete等不會返回資料的sql語句,在執行沒有錯誤時返回true 2 ...

一條SQL語句如何被執行

select from t where id 10 寫乙個查詢語句不難,但你知道一條sql語句被執行的過程嗎?下圖是mysql的基本架構圖。server層類似中介軟體,主要接受使用者請求,解析請求等。儲存引擎則是底層核心,負責資料的訪問。客戶端要想使用mysql,必須先和mysql建立乙個連線,聯結...

一條SQL語句的執行過程

1.1連線層 提供連線協議 tcp ip,socket 提供驗證 使用者 密碼 ip socket 提供專用連線線程 接收使用者sql,返回結果 通過以下語句可以檢視鏈結執行緒的基本情況 mysql show processlist 1.2sql層 重點 接收上層傳送的sql語句 語法驗證模組 驗證...