在使用set statistics io on語句來統計sql語句或儲存過程的i/o的時候,sqlserver會顯示邏輯讀與物理讀,那麼邏輯讀與物理讀是什麼意思呢?
表 'systempara'。掃瞄計數 1,邏輯讀取 2 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。
大家都知道,sqlserver在執行第一次sql語句或儲存過程之後,會在記憶體中快取執行這些sql語句、儲存過程的執行計畫和讀取出來的資料,
下次再執行這些sql語句、儲存過程的時候就不用再到硬碟裡去讀了,使讀取的速度更快提高效能。
邏輯讀:sqlserver去記憶體裡面的緩訪問資料或執行計畫(執行計畫可以重用),所以邏輯讀是比較快的
物理讀:如果記憶體裡沒有快取資料或執行計畫(sql語句改變執行計畫不能重用,需要重新計算執行計畫),那麼sqlserver就要去硬碟讀取這些
資料,這時候就是物理讀,硬碟速度跟記憶體速度不在乙個數量級別,所以物理讀是比較慢的
SQLSERVER中的邏輯讀與物理讀
在使用set statistics io on語句來統計sql語句或儲存過程的i o的時候,sqlserver會顯示邏輯讀與物理讀,那麼邏輯讀與物理讀是什麼意思呢?表 systempara 掃瞄計數 1,邏輯讀取 2 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0...
理解SQL SERVER中的邏輯讀,預讀和物理讀
在談到幾種不同的讀取方式之前,首先要理解sql server資料儲存的方式.sql server儲存的最小單位為頁 page 每一頁大小為8k,sql server對於頁的讀取是原子性,要麼讀完一頁,要麼完全不讀,不會有中間狀態。而頁之間的資料組織結構為b樹 請參考我之前的博文 所以sql serv...
理解SQL SERVER中的邏輯讀,預讀和物理讀
優化sql效能,你必須理解資料庫查詢資料的細節,在查詢分析器中開啟io統計,set statistics io on 就能檢視查詢過程 關於邏輯讀,預讀和物理讀的顯示。下面給大家講解資料庫查詢資料的細節,你也就明白了什麼是關於邏輯讀,預讀和物理讀 要想把這幾個概念弄清楚必須了解資料庫查詢資料的細節。...