为什么执行计划开销小的,IO和cpu却消耗的多

feelmercy 2014-09-22 04:30:48
执行以下两段代码

DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE

set statistics io,time ,PROFILE on
declare @a datetime=getdate();
select USER_ID,MAX(cur_time) from User_Location
group by USER_ID order by MAX(cur_time) desc;

select datediff(ms,@a,GETDATE());

set statistics io,time ,PROFILE off

go



DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE

set statistics io,time,PROFILE on
declare @b datetime=getdate();
select MAX(a.cur_time),b.USER_ID,b.User_Name from User_Location a
inner join Base_User b on a.user_id=b.user_id
group by b.USER_ID ,b.user_name order by MAX(a.cur_time) desc;

select datediff(ms,@b,GETDATE());

set statistics io,time ,PROFILE off
go


执行计划如下:


IO 信息如下


SQL Server 执行时间:
CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。

(18 行受影响)
表 'Worktable'。扫描计数 0,逻辑读取 0 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
表 'User_Location'。扫描计数 1,逻辑读取 87 次,物理读取 4 次,预读 85 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。

(4 行受影响)

(1 行受影响)

SQL Server 执行时间:
CPU 时间 = 0 毫秒,占用时间 = 34 毫秒。

(1 行受影响)

SQL Server 执行时间:
CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。


SQL Server 执行时间:
CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。

(18 行受影响)
表 'User_Location'。扫描计数 27,逻辑读取 579 次,物理读取 20 次,预读 344 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
表 'Base_User'。扫描计数 1,逻辑读取 3 次,物理读取 1 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。

(6 行受影响)

(1 行受影响)

SQL Server 执行时间:
CPU 时间 = 31 毫秒,占用时间 = 199 毫秒。

(1 行受影响)

SQL Server 执行时间:
CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
---------------
大神们,请告诉我为什么,执行计划开销小的,IO和cpu却消耗的多
...全文
575 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
發糞塗牆 2014-09-22
  • 打赏
  • 举报
回复
而且第一个是单表查询,而第二个是多表查询,索引、数据分布、统计信息、碎片等都有可能带来影响。另外我觉得你可以用多次运行之后的信息来做对比,第一次需要从磁盘加载到buffer pool,这部分在正式情况下很少见
feelmercy 2014-09-22
  • 打赏
  • 举报
回复
是,第二个的结果比第一个多了一列,可比性较低,谢谢各位回复
沉默肥牛 2014-09-22
  • 打赏
  • 举报
回复
语句不一样,返回值不一样,用到的表也不相同。。个人认为不具有可比性。
xiaodongni 2014-09-22
  • 打赏
  • 举报
回复
IO开销和只是执行计划的一部分。这个IO开销和这个计划的效率 没有必要联系吧
發糞塗牆 2014-09-22
  • 打赏
  • 举报
回复
我觉得对比的前提应该是语义相同,你这个不一样,所以没有什么好说的

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧