SQLSERVER預讀邏輯讀物理讀

  1.   預讀:用估計信息,去硬盤讀取數據到緩存。預讀100次,也就是估計將要從硬盤中讀取了100頁數據到緩存。
  2.   物理讀:查詢計劃生成好之後,若是緩存缺乏所須要的數據,讓緩存再次去讀硬盤。物理讀10頁,從硬盤中讀取10頁數據到緩存。
  3.   邏輯讀:從緩存中取出全部數據。邏輯讀100次,也就是從緩存裏取到100頁數據。
  4.      lob邏輯讀:從緩存讀取的text,ntext,image或大值類型(varchar(max),nvarchar(max),varbinary(max))的頁的數目

 

SQL Server存儲的最小單位是頁,每一頁大小爲8K,SQL Server對於頁的讀取是原子性的,要麼讀完一頁,要麼徹底不讀。即便是僅僅要得到一條數據,也要讀完一頁。而頁之間的數據組織結構爲B樹結構。緩存

因此SQL Server對於邏輯讀、預讀、物理讀的單位是頁。性能

 

基本上,邏輯讀、物理讀、預讀都等因而掃描了多少個頁。spa

 

 

當遇到一個查詢語句時,SQL SERVER會走第一步,分別爲生成執行計劃(佔用CPU和內存資源),同步的用估計的數據去磁盤中取得須要取的數據(佔用IO資源,這就是預讀),blog

注意,兩個第一步是並行的,SQL SERVER經過這種方式來提升查詢性能.內存

      而後查詢計劃生成好了之後去緩存讀取數據.當發現緩存缺乏所須要的數據後讓緩存再次去讀硬盤(物理讀)資源

      最後從緩存中取出全部數據(邏輯讀)。同步

相關文章
相關標籤/搜索