下午看了下記憶體結構,特總結下select原理,不對之處敬請指教。
第一步:客戶端把語句發給伺服器端執行。
一方面是從記憶體中讀取資料要比從硬碟中的資料檔案中讀取資料效率要高,另一方
面,也是因為這個語句解析的原因。
第二步:語句解析
1、查詢快取記憶體。
2、語句合法性檢查。
3、語言含義檢查。
4、獲得物件解析鎖。
5、資料訪問許可權的核對。
6、確定最佳執行計畫。
第三步:語句執行。
1、是若被選擇行所在的資料塊已經被讀取到資料緩衝區的話,則伺服器程序會直接把
這個資料傳遞給客戶端,而不是從資料庫檔案中去查詢資料。
若資料不在緩衝區中,則伺服器程序將從資料庫檔案中查詢相關資料,並把這些數
據放入到資料緩衝區中。
第四步:提取資料。
在伺服器端的程序中,有乙個專門負責資料提取的一段**。他的作用就是把查詢到的
資料結果返回給使用者端程序,從而完成整個查詢動作。
從整個流程來看,查詢肯定有第一步和第四步,如果是軟解析,在二步只執行 1、查詢快取記憶體。如果記憶體沒有,要依次進行第二步的1-6步還有第三步,所以軟解析比硬解析快的很多。
以上是我對oracle查詢原理的整理,剛才網友問我記憶體怎麼分配空間放資料,查了下,因為記憶體空間有限,怎麼執行的若資料不在緩衝區中,則伺服器程序將從資料庫檔案中查詢相關資料,並把這些資料放入到資料緩衝區中呢。oracle通過lru演算法,移動buffer cache,然後從資料塊中讀取出來放在buffer cache中,再讀取。
見微知著 從Select語句看Oracle查詢原理
select語句可以說是dba和資料庫開發者在工作中使用最多的語句之一,但這條語句是如何執行?在oracle資料庫中又是如何運作的呢?今天我們就從一條簡單的select語句開始,看看oracle資料庫後台的運作機制。這對於我們之後的系統管理與故障排除非常有幫助。第一步 客戶端把語句發給伺服器端執行 ...
見微知著 從Select語句看Oracle查詢原理
select語句可以說是dba和資料庫開發者在工作中使用最多的語句之一,但這條語句是如何執行?在oracle資料庫中又是如何運作的呢?今天我們就從一條簡單的select語句開始,看看oracle資料庫後台的運作機制。這對於我們之後的系統管理與故障排除非常有幫助。第一步 客戶端把語句發給伺服器端執行 ...
從select語句看Oracle資料庫查工作原理
假如,我們現在利用select語句從資料庫查詢資料,oracle資料庫是如何運作的呢?從中我們可以領悟到什麼呢?下面,就結合一條簡單的select語句,看看oracle資料庫後台的運作機制。這對於我們之後的系統管理與故障排除非常有幫助。第一步 客戶端把語句發給伺服器端執行。當我們在客戶端執行sele...