小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Sql Server性能優(yōu)化輔助指標(biāo)SET STATISTICS TIME ON和SET STATISTICS IO ON

 刮骨劍 2019-03-22

1.前言   

     對(duì)于優(yōu)化SQL語(yǔ)句或存儲(chǔ)過程,以前主要是用如下語(yǔ)句來判斷具體執(zhí)行時(shí)間,但是SQL環(huán)境是復(fù)雜多變的,下面語(yǔ)句并不能精準(zhǔn)判斷性能是否提高;如果需要精確知道CPU、IO等信息,就無能為力了。

1
2
3
PRINT convert(varchar(30),getdate(),121)
select * from Sales.SalesOrderDetail where SalesOrderID > 64185
PRINT convert(varchar(30),getdate(),121)

  這時(shí)候如果使用SET STATISTICS TIME ONSET STATISTICS IO ON 指令就能清楚的知道了,在測(cè)試之前需執(zhí)行下面2條命令

  DBCC DROPCLEANBUFFERS 清除緩沖區(qū)

  DBCC FREEPROCCACHE 刪除計(jì)劃高速緩存中的元素

2.測(cè)試

     2.1 首先執(zhí)行下面腳本

1
2
3
4
5
6
7
--開啟統(tǒng)計(jì)信息
SET STATISTICS TIME ON
SET STATISTICS IO ON
GO
select * from Sales.SalesOrderDetail where SalesOrderID > 64185
GO

  結(jié)果如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
--1.
SQL Server 分析和編譯時(shí)間:
   CPU 時(shí)間 = 0 毫秒,占用時(shí)間 = 53 毫秒。
--2.
SQL Server 分析和編譯時(shí)間:
   CPU 時(shí)間 = 0 毫秒,占用時(shí)間 = 0 毫秒。
(35292 行受影響)
--3.
表 'SalesOrderDetail'。掃描計(jì)數(shù) 1,邏輯讀取 337 次,物理讀取 4 次,預(yù)讀 333 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。
--4.
 SQL Server 執(zhí)行時(shí)間:
   CPU 時(shí)間 = 47 毫秒,占用時(shí)間 = 893 毫秒。

  說明:

      標(biāo)記1:表示將語(yǔ)句的結(jié)果放到SQL緩沖區(qū)所需要的CPU時(shí)間和總時(shí)間

      標(biāo)記2:標(biāo)識(shí)從緩沖區(qū)中取出解析結(jié)果所需要的時(shí)間

      標(biāo)記4:標(biāo)識(shí)這次查詢使用了多少CPU時(shí)間和總的時(shí)間,其中CPU時(shí)間是對(duì)查詢所需CPU資源的一種比較穩(wěn)定的測(cè)量方式;總時(shí)間則跟SQL服務(wù)器有關(guān),因此比較不穩(wěn)定;所以性能判斷的時(shí)候可以以CPU時(shí)間來做標(biāo)準(zhǔn)。

      標(biāo)記3:資源時(shí)間;其中邏輯讀是指SQL從緩沖區(qū)讀取的數(shù)據(jù);物理讀是指從數(shù)據(jù)從磁盤讀取到緩沖區(qū)中;

      2.2 再次運(yùn)行查詢語(yǔ)句結(jié)果如下,由于第一次執(zhí)行的時(shí)候,數(shù)據(jù)已經(jīng)從磁盤讀取到緩沖區(qū),因此標(biāo)記1的時(shí)間也就是0了,標(biāo)記3物理讀也為0了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
--1.
SQL Server 分析和編譯時(shí)間:
   CPU 時(shí)間 = 0 毫秒,占用時(shí)間 = 0 毫秒。
--2.
SQL Server 分析和編譯時(shí)間:
   CPU 時(shí)間 = 0 毫秒,占用時(shí)間 = 0 毫秒。
(35292 行受影響)
--3.
表 'SalesOrderDetail'。掃描計(jì)數(shù) 1,邏輯讀取 337 次,物理讀取 0 次,預(yù)讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預(yù)讀 0 次。
--4.
 SQL Server 執(zhí)行時(shí)間:
   CPU 時(shí)間 = 32 毫秒,占用時(shí)間 = 848 毫秒。

     2.3 在優(yōu)化SQL語(yǔ)句的時(shí)候可以從CPU時(shí)間,邏輯讀取數(shù)來判斷性能是否提升,而且這2個(gè)指標(biāo)是比較真實(shí)的反映了SQL執(zhí)行情況的。這里只是簡(jiǎn)單介紹了一下這2個(gè)命令的一些基本信息,則需更加深入了解SQL底層知識(shí)。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多