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語句 語法驗證模組 驗證...