首页 新闻 会员 周边 捐助

SQL Server 2014中实际的逻辑读和DMV中的逻辑读天壤之别的原因是什么?

0
悬赏园豆:50 [待解决问题]

已经打完sp2补丁。

 

tableA/tableB两个表,存储过程大致:

create proc proc_getA

@id int

as

set nocount on

declare @t table (a_id int)

insert into @t (a_id) select a_id from tableA where id = @id

select top 10 ...
      from tableB a left join @t t on a.a_id=t.a_id
     where ...
  order by ...

GO

 

Management studio显示io信息:

表 '#AAD188B4'。扫描计数 0,逻辑读取 0 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
表 'tableA'。扫描计数 1,逻辑读取 3 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
表 '#AAD188B4'。扫描计数 1,逻辑读取 0 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
表 'tableB'。扫描计数 1,逻辑读取 3 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。

 

sys.dm_exec_query_stats显示:

第一条sql,执行次数3595092,总逻辑读3127326921,总逻辑写50979,相当于平均每次870逻辑读

第二条sql,执行次数25360185,总逻辑读60966871434,总逻辑写0,相当于平均每次2404次逻辑读

 

问题,为什么差距这么大呢?

Untitled的主页 Untitled | 初学一级 | 园豆:101
提问于:2016-08-21 22:21
< >
分享
所有回答(2)
0
dmv中的是累积值,而非单次查询的io
悦光阴 | 园豆:2251 (老鸟四级) | 2016-08-21 23:43

查明原因,分区表执行计划问题,谢谢。

支持(0) 反对(0) Untitled | 园豆:101 (初学一级) | 2016-08-22 02:20
0

分区表执行计划问题

Untitled | 园豆:101 (初学一级) | 2016-08-22 02:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册