- 預讀:用估計資訊,去硬碟讀取資料到快取,預讀100次,也就是估計將要從硬碟中讀取了100頁資料到快取,
- 物理讀:查詢計劃生成好以后,如果快取缺少所需要的資料,讓快取再次去讀硬碟,物理讀10頁,從硬碟中讀取10頁資料到快取,
- 邏輯讀:從快取中取出所有資料,邏輯讀100次,也就是從快取里取到100頁資料,
- lob邏輯讀:從快取讀取的text,ntext,image或大值型別(varchar(max),nvarchar(max),varbinary(max))的頁的數目
SQL Server存盤的最小單位是頁,每一頁大小為8K,SQL Server對于頁的讀取是原子性的,要么讀完一頁,要么完全不讀,即使是僅僅要獲得一條資料,也要讀完一頁,而頁之間的資料組織結構為B樹結構,
所以SQL Server對于邏輯讀、預讀、物理讀的單位是頁,
基本上,邏輯讀、物理讀、預讀都等于是掃描了多少個頁,

當遇到一個查詢陳述句時,SQL SERVER會走第一步,分別為生成執行計劃(占用CPU和記憶體資源),同步的用估計的資料去磁盤中取得需要取的資料(占用IO資源,這就是預讀),
注意,兩個第一步是并行的,SQL SERVER通過這種方式來提高查詢性能.
然后查詢計劃生成好了以后去快取讀取資料.當發現快取缺少所需要的資料后讓快取再次去讀硬碟(物理讀)
最后從快取中取出所有資料(邏輯讀),
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/25123.html
標籤:SQL Server
