猫狸嘎 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 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵