天天看點

[SQL基礎]統計資訊解釋

在平時優化SQL的時候,最長用的就是:SET STATISTICS ON,它可以用來檢視我們寫的查詢語句到底性能如何,不過,究竟這個性能的名額是怎麼樣的呢?首先需要明白的,就是各項資料的意義。

輸出項

含義

Table

表的名稱。

scan count

執行的掃描次數。

logical reads

從資料緩存讀取的頁數。

physical reads

從磁盤讀取的頁數。

read-ahead reads

為進行查詢而放入緩存的頁數。

lob logical reads

從資料緩存讀取的 text、ntext、image 或大值類型 (varchar(max)、nvarchar(max)、varbinary(max)) 頁的數目。

lob physical reads

從磁盤讀取的 text、ntext、image 或大值類型頁的數目。

lob read-ahead reads

為進行查詢而放入緩存的 text、ntext、image 或大值類型頁的數目。

掃描計數(Scan Count):在查詢中涉及到的表被通路的次數。在我們的例子中,其中的表隻被通路了1次,由于查詢中不包括連接配接指令,這一資訊并不是十分有用,但如果查詢中包含有一個或多個連接配接,則這一資訊是十分有用的。(一個循環外部的表的Scan Count值為1,但對于一個循環内的表而言,其值為循環的次數。可以想象得到,對于一個循環内的表而言,其Scan Count值越小,它所使用的資源越少,查詢的性能也就越高。是以在調節一個帶連接配接的查詢的性能時,需要關注Scan Count的值,在進行調節時,注意觀察它是增加還是減少了。)

邏輯讀取(Logical Reads):這是SET STATISTICS IO或SET STATISTICS TIME指令提供的最有用的 資料。我們知道,SQL Server在可以對任何資料進行操作前,必須首先把資料讀取到其資料緩沖區中。此外,我們也知道SQL Server何時會從資料緩沖區中讀取資料,并把資料讀取到大小為8K位元組的頁中。那麼Logical Reads的意義是什麼呢?Logical Reads是指SQL Server為得到查詢中的結果而必須從資料緩沖區讀取的頁數。在執行查詢時,SQL Server不會讀取比實際需求多或少的資料,是以,當在相同的資料集上執行同一個查詢,得到的Logical Reads的數字總是相同的。(SQL Server執行查詢時的Logical Reads值每一次這個數值是不會變化的。是以,在進行查詢性能的調節時,這是一個可以用來衡量你的調節措施是否成功的一個很好的标準。如果 Logical Reads值下降,就表明查詢使用的伺服器資源減少,查詢的性能有所提高。如果Logical Reads值增加,則表示調節措施降低了查詢的性能。在其他條件不變的情況下,一個查詢使用的邏輯讀越少,其效率就越高,查詢的速度就越快。)

實體讀取(Physical Reads):實體讀,在執行真正的查詢操作前,SQL Server必須從磁盤上向資料緩沖區中讀取它所需要的資料。在SQL Server開始執行查詢前,它要作的第一件事就是檢查它所需要的資料是否在資料緩沖區中,如果在,就從中讀取,如果不在,SQL Server必須首先将它需要的資料從磁盤上讀到資料緩沖區中。我們可以想象得到,SQL Server在執行實體讀時比執行邏輯讀需要更多的伺服器資源。是以,在理想情況下,我們應當盡量避免實體讀操作。下面的這一部分聽起來讓人容易感到糊塗 了。在對查詢的性能進行調節時,可以忽略實體讀而隻專注于邏輯讀。你一定會納悶兒,剛才不是還說實體讀比邏輯讀需要更多的伺服器資源嗎?情況确實是這樣, SQL Server在執行查詢時所需要的實體讀次數不可能通過性能調節而減少的。減少實體讀的次數是DBA的一項重要工作,但它涉及到整個伺服器性能的調節,而 不僅僅是查詢性能的調節。在進行查詢性能調節時,我們不能控制資料緩沖區的大小或伺服器的忙碌程度以及完成查詢所需要的資料是在資料緩沖區中還是在磁盤 上,唯一我們能夠控制的資料是得到查詢結果所需要執行的邏輯讀的次數。是以,在查詢性能的調節中,我們可以心安理得地不理會SET STATISTICS IO指令提供的Physical Read的值。(減少實體讀次數、加快SQL Server運作速度的一種方式是確定伺服器的實體記憶體足夠多。)

預計(Read-Ahead Reads):與Physical Reads一樣,這個值在查詢性能調節中也沒有什麼用。Read-Ahead Reads表示SQL Server在執行預讀機制時讀取的實體頁。為了優化其性能,SQL Server在認為它需要資料之前預先讀取一部分資料,根據SQL Server對資料需求預測的準确程度,預讀的資料頁可能有用,也可能沒用。

本文轉自 你聽海是不是在笑 部落格園部落格,原文連結:http://www.cnblogs.com/nuaalfm/archive/2011/06/02/2068699.html  ,如需轉載請自行聯系原作者