oracle語句執行過程

2021-10-01 11:20:23 字數 685 閱讀 9242

shared pool:是快取sql語句以及sql語句對應的執行計畫

server process(前端程序):找shared pool中是否已經快取了sql語句和執行計畫,

如果沒有,則解析執行計畫並放入shared pool中,如果有,則執行使用shared pool中快取

的執行計畫,減少了解析sql語句所花費的cup和io。

bufffer cache:就是快取的dbf的資料

讀取一條sql:客戶傳送請求,伺服器建立資料庫連線(連線池分配一條),server process

oracle即前端程序會處理這條連線發過來的sql語句,先到buffer cache中查詢sql語句,有

執行使用buffer cache中的執行計畫和sql語句,沒有則從dbf中去讀(消耗cup、io),先

讀到buffer cache中,再從記憶體中返回給前端程序返回使用者。

快取命中,命中率低肯定有問題,但是命中率高不一定沒有問題,如物理io一萬條,邏輯io十萬條,

雖然命中率高,但是物理io也是一萬次,非常影響效能。

寫一條sql:也是先寫到buffer cache,然後由dbwr程序寫到dbf。

buffer cache中有-已連線區(ping區)、空閒或未使用區、乾淨區、髒區

已連線區:server process連線buffer cache的一瞬間,該區域就是已連線區

學習 Oracle執行語句的過程

1 parse 1 從共享池的庫緩衝區中搜尋,該語句是否曾經執行過,凡是執行過的sql語句,oracle會使用hash函式進行計算,產生乙個很小的文字記錄。如果是第一次執行,則進入第二步。2 檢查語法 許可權等等 許可權的資訊是存放在oracle的資料字典當中的 oracle先從共享池的資料字典緩衝...

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語句進行語法和詞法分析。名詞解釋 ...