猫狸嘎 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看一下

    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站