統(tǒng)計信息解釋_第1頁
統(tǒng)計信息解釋_第2頁
統(tǒng)計信息解釋_第3頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、SQL 基礎(chǔ) 統(tǒng)計信息解釋在平時優(yōu)化SQL 的時候,最長用的就是:SETSTATISTICS ON,它可以用來查看我們寫的查詢語句到底性能如何,不過,究竟這個性能的指標(biāo)是怎么樣的呢?首先需要明白的,就是各項數(shù)據(jù)的意義。以下解釋來自MSDN (點(diǎn)擊查看)輸出項含義Table表的名稱。scan count執(zhí)行的掃描次數(shù)。logical reads從數(shù)據(jù)緩存讀取的頁數(shù)。physical reads從磁盤讀取的頁數(shù)。read-ahead reads為進(jìn)行查詢而放入緩存的頁數(shù)。lob logical reads從數(shù)據(jù)緩存讀取的text 、 ntext 、image或大值類型(varchar(max)、n

2、varchar(max)、varbinary(max)頁的數(shù)目。lob physical reads從磁盤讀取的text 、 ntext 、image或大值類型頁的數(shù)目。lob read-ahead reads為進(jìn)行查詢而放入緩存的text 、ntext、image或大值類型頁的數(shù)目。以下解釋來自園子里面的一位大師,嘿嘿(點(diǎn)擊查看原文)掃描計數(shù) (Scan Count) :在查詢中涉及到的表被訪問的次數(shù)。在我們的例子中,其中的表只被訪問了 1 次,由于查詢中不包括連接命令,這一信息并不是十分有用,但如果查詢中包含有一個或多個連接,則這一信息是十分有用的。 (一個循環(huán)外部的表的 Scan Cou

3、nt 值為 1,但對于一個循環(huán)內(nèi)的表而言,其值為循環(huán)的次數(shù)??梢韵胂蟮玫?,對于一個循環(huán)內(nèi)的表而言,其 Scan Count 值越小,它所使用的資源越少,查詢的性能也就越高。因此在調(diào)節(jié)一個帶連接的查詢的性能時,需要關(guān)注Scan Count的值,在進(jìn)行調(diào)節(jié)時,注意觀察它是增加還是減少了。 )邏輯讀取(Logical Reads):這是SET STATISTICS IO或SET STATISTICS TIME命令提供的最有用的數(shù)據(jù)。我們知道, SQL Server在可以對任何數(shù)據(jù)進(jìn)行操作前,必須首先把數(shù)據(jù)讀取到其數(shù)據(jù)緩沖區(qū)中。此外,我們也知道SQLServer 何時會從數(shù)據(jù)緩沖區(qū)中讀取數(shù)據(jù), 并把數(shù)

4、據(jù)讀取到大小為 8K 字節(jié)的頁中。那么 Logical Reads 的意義是什么呢?Logical Reads是指 SQL Server為得到查詢中的結(jié)果而必須從數(shù)據(jù)緩沖區(qū)讀取的頁數(shù)。在執(zhí)行查詢時,SQL Server不會讀取比實際需求多或少的數(shù)據(jù),因此,當(dāng)在相同的數(shù)據(jù)集上執(zhí)行同一個查詢,得到的 Logical Reads 的數(shù)字總是相同的。( SQL Server 執(zhí)行查詢時的 Logical Reads 值每一次這個數(shù)值是不會變化的。因此,在進(jìn)行查詢性能的調(diào)節(jié)時,這是一個可以用來衡量你的調(diào)節(jié)措施是否成功的一個很好的標(biāo)準(zhǔn)。如果Logical Reads值下降,就表明查詢使用的服務(wù)器資源減少,

5、查詢的性能有所提高。如果Logical Reads值增加,則表示調(diào)節(jié)措施降低了查詢的性能。在其他條件不變的情況下,一個查詢使用的邏輯讀越少,其效率就越高,查詢的速度就越快。 )物理讀取 (Physical Reads):物理讀,在執(zhí)行真正的查詢操作前, SQL Server必須從磁盤上向數(shù)據(jù)緩沖區(qū)中讀取它所需要的數(shù)據(jù)。在SQL Server開始執(zhí)行查詢前,它要作的第一件事就是檢查它所需要的數(shù)據(jù)是否在數(shù)據(jù)緩沖區(qū)中,如果在,就從中讀取,如果不在,SQL Server必須首先將它需要的數(shù)據(jù)從磁盤上讀到數(shù)據(jù)緩沖區(qū)中。我們可以想象得到,SQL Server 在執(zhí)行物理讀時比執(zhí)行邏輯讀需要更多的服務(wù)器資源

6、。因此,在理想情況下,我們應(yīng)當(dāng)盡量避免物理讀操作。下面的這一部分聽起來讓人容易感到糊涂了。在對查詢的性能進(jìn)行調(diào)節(jié)時,可以忽略物理讀而只專注于邏輯讀。你一定會納悶兒,剛才不是還說物理讀比邏輯讀需要更多的服務(wù)器資源嗎?情況確實是這樣,SQL Server在執(zhí)行查詢時所需要的物理讀次數(shù)不可能通過性能調(diào)節(jié)而減少的。減少物理讀的次數(shù)是 DBA 的一項重要工作,但它涉及到整個服務(wù)器性能的調(diào)節(jié),而不僅僅是查詢性能的調(diào)節(jié)。在進(jìn)行查詢性能調(diào)節(jié)時,我們不能控制數(shù)據(jù)緩沖區(qū)的大小或服務(wù)器的忙碌程度以及完成查詢所需要的數(shù)據(jù)是在數(shù)據(jù)緩沖區(qū)中還是在磁盤 上,唯一我們能夠控制的數(shù)據(jù)是得到查詢結(jié)果所需要執(zhí)行的邏輯讀的次數(shù)。因此,在查詢性能的調(diào)節(jié)中,我們可以心安理得地不理會SET STATISTICS IO命令提供的Physical Read 的值。(減少物理讀次數(shù)、加快SQL Server運(yùn)行速度的一種方式是確保服務(wù)器的物理內(nèi)存足夠多。)預(yù)計 (Read-Ahead Reads):與 Physical Reads一樣,這個值在查詢性能調(diào)節(jié)中也沒有什么用。Read-Ahead Reads 表示 SQL Se

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論