猫狸嘎 2020-10-09 10:48 采纳率: 50%
浏览 91

查询结果相同,语句中仅有group by 不同,为什么查询时间会有很大的差异?

图片说明

可以看到两边的实际执行计划有差异,但两边所用索引是一致的,我能理解实际执行计划有差异必然带来查询耗时的差异。我奇怪的是左边group by 字段要别右边更多,但耗时却更少。

这是为什么?

我的认知中,分组字段越多,所用耗时应该越长才对,怎么会有做更多的事情反而耗时更少呢?

或者说我的认知没有问题,只是sql server给出的执行计划本身有问题?那么我应该怎么做才能让它正常呢?因为所用的索引都是一致的,强制指定索引影响查询计划应该是没有意义的,还有别的办法吗?

  • 写回答

1条回答 默认 最新

  • 谢高升 2020-10-12 16:18
    关注

    应该是m1.Remark和m2.REmark都有索引,分组不用回表了,id会扫描所有数据,可以用explain看一下

    评论

报告相同问题?

悬赏问题

  • ¥15 (标签-python)
  • ¥15 第一个已完成,求第二个做法
  • ¥20 搭建awx,试了很多版本都有错
  • ¥15 java corba的客户端该如何指定使用本地某个固定IP去连接服务端?
  • ¥15 activiti工作流问题,求解答
  • ¥15 有人写过RPA后台管理系统么?
  • ¥15 Bioage计算生物学年龄
  • ¥20 如何将FPGA Alveo U50恢复原来出厂设置哇?
  • ¥50 cocos2d-x lua 在mac上接入lua protobuf?
  • ¥15 es 7.17.20版本生成时间戳