sql-server - 同一逻辑语句上的执行计划更改
问题描述
当我更改订单或条件时,我会得到 2 个不同的执行计划?
第一个查询立即运行,第二个查询不同并堆叠几分钟。
我不明白为什么。
好的执行计划
select findamittakul.recid,count(*) ct,max(c1.key5) key5
from
findamittakul join contact1 c1 on(tz=key1)
join CONTACT2 c2 on(c1.accountno=c2.accountno )
where
c2.hp=findamittakul.hp
and (c1.CREATEON =findamittakul.CREATEON or c1.CREATEON>findamittakul.createon )
and c2.HAFKADABLOCK=''
and source=1 and c1.kupatype =3
group by findamittakul.recid
糟糕的执行计划
select findamittakul.recid,count(*) ct,max(c1.key5) key5
from
findamittakul join contact1 c1 on(tz=key1)
join CONTACT2 c2 on(c1.accountno=c2.accountno )
where
c2.hp=findamittakul.hp
and (c1.CREATEON >findamittakul.CREATEON or c1.CREATEON=findamittakul.createon )
--andc1.CREATEON >=findamittakul.CREATEON --same plane
and c2.HAFKADABLOCK =''
and source=1 and c1.kupatype =3
group by findamittakul.recid
解决方案
推荐阅读
- javascript - JavaScript 按可空布尔值排序数组,然后是字符串
- installation - 无法在 Windows 10 版本 1903 上安装 Chocolatey
- asp.net - 子目录的 web 配置设置和身份验证问题
- sql - 我们可以在选择语句中使用 Map(col1,col2)
- c++ - 如何在 C++ 中使用 setiosflags 将十进制数打印为八进制数
- rxjs - Rxjs - 如何让 concatMap 排队的 observables?
- mysql - 在一个查询中根据不同的 GROUP BY 选择计数
- vue.js - 如何获取 API 响应状态代码以突出显示 v-text-field
- css - 使用 BeautifulSoup 时丢失信息
- visual-studio-2019 - 如何在 Visual Studio 中启用代码转换面板