查看表扫描次数,并对比索引对表查询的作用
1、什么是表掃描
當(dāng)執(zhí)行SQL 語句時(shí),可通過“”評(píng)估執(zhí)行計(jì)劃”,查看語句的執(zhí)行計(jì)劃。尤其是語句設(shè)計(jì)查詢,會(huì)出現(xiàn)“表掃描”部分;
表掃描是嚴(yán)重影響查詢時(shí)間的因素!
2、驗(yàn)證
(1)新建數(shù)據(jù)表BasicMsg20161204,主鍵為自增列,但是將聚集索引建立在(RecvTime,AA,MsgTypecode)上;
(2)新建數(shù)據(jù)表BasicMsg20161104,主鍵為自增列,且該列為聚集索引;在RecvTime上有非聚集索引;
(3)新建數(shù)據(jù)表BasicMsg20161004,主鍵為自增列,且該列為聚集索引;沒有任何其他索引。
? ? ? ? 表中共有347758行數(shù)據(jù),?查看三表的IO讀寫情況:
--//----------------------------------------------
--1、查看該表的IO讀寫情況
DBCC DROPCLEANBUFFERS --清空所有的緩存區(qū)內(nèi)容 SET STATISTICS IO ON SELECT * FROM BasicMsg20161204 --WHERE IDFlag=347758 SET STATISTICS IO OFF--2、結(jié)果:
--BasicMsg20161204 --(347758 row(s) affected) --Table 'BasicMsg20161204'. Scan count 1, logical reads 6594, physical reads 2, read-ahead reads 6596, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. --掃描計(jì)數(shù)1次,邏輯讀取6594次!物理讀取2次,預(yù)讀6594次,lob邏輯讀取0次...--BasicMsg20161104 --(347758 row(s) affected)
--Table 'BasicMsg20161104'. Scan count 1, logical reads 6575, physical reads 3, read-ahead reads 6596,?
--掃描計(jì)數(shù)1次,邏輯讀取6575次!物理讀取3次,預(yù)讀6575次,lob邏輯讀取0次...
--3、分析
? 發(fā)現(xiàn),當(dāng)未用WHERE 語句對(duì)索引列進(jìn)行條件篩選時(shí),前兩表的邏輯讀取都比較大,索引沒有明顯作用;未加任何索引的1004表的預(yù)讀次數(shù)反而少;
(1)當(dāng)在查詢語句后加?WHERE RecvTime<=17999995限制條件,掃描次數(shù)一樣
(2)當(dāng)在查詢語句后加?WHERE RecvTime=17999995限制條件,BasicMsg20161204表的結(jié)果為:Scan count 1, logical reads 3, physical reads 3;建立非聚集索引的BasicMsg20161104表為:Scan count 1, logical reads 3, physical reads 3;
? 未在RecvTime上加索引,1004表的Table 'BasicMsg20161004'. Scan count 9, logical reads 7215, physical reads 2, read-ahead reads 4352,與其他2表的3次和6次,有天壤之別!!
這說明,索引建立在需要具體判定條件的列上才有效。
?--4、DBCC命令協(xié)助理解
dbcc ind 命令查看下數(shù)據(jù)表記錄在哪個(gè)數(shù)據(jù)頁中
DBCC IND(DF17DataPro,BasicMsg20161104 ,-1) -- (數(shù)據(jù)庫名,表名,參數(shù)值)
然后導(dǎo)出該數(shù)據(jù)頁
dbcc traceon(3604) dbcc page(Ctrip,1,148,1)轉(zhuǎn)載于:https://www.cnblogs.com/Miss-Bueno/p/7400268.html
總結(jié)
以上是生活随笔為你收集整理的查看表扫描次数,并对比索引对表查询的作用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《影响力》承诺和一致原理深入剖析,人们对
- 下一篇: js无限轮播的写法