2010-01-19 96 views
3

我讀過的邏輯定義從上寫着:邏輯讀數是如何計算的?

http://msdn.microsoft.com/en-us/library/ms184361.aspx

它說:

「從數據高速緩存讀取的頁數」。

我有兩個表(TABLE_1的行數,並TABLE_2是16.811),當我運行這兩個查詢,它提供了以下結果。

SELECT * FROM Table_1 

results 
Scan count 1, logical reads 6, physical reads 0, read-ahead reads 0. 

SELECT * FROM Table_2 

results 
scan count 1, logical reads 701, physical reads 0, read-ahead reads 0 

如果邏輯讀取是「從數據緩存中讀取的頁數」。那麼什麼是頁面?它是如何計算的?

回答

2

頁面是最小的物理數據單元SQL Server適用。

頁面長度爲8K,可能包含多個表記錄,索引記錄和其他信息。

即使行長度爲10字節,也需要讀取整個頁面。

就你而言,一個頁面平均包含約20行。

+0

所以20行的平均值取決於行的大小,我是否正確?像一個很大的行可以填充一個頁面? – stckvrflw 2010-01-19 11:27:43

+0

'@ stckvrflw':是的。如果表中存在可變長度數據類型(如'VARCHAR'或'VARBINARY'),則記錄大小也將是可變的。而且,記錄可以被刪除,並且它們的空間不會立即被重新使用。 – Quassnoi 2010-01-19 12:08:19