我有 2 个 Sql Server 实例和一个查询:
SELECT
[DetailDescription],
[SubTotal]
FROM [dbo].[CRR] WITH (INDEX (IX_CORM_CORMId))
WHERE CORM_CORMId >= 5933168 AND CORM_CORMId <= 5955843
一个有 Sort 的得到 301740 行并且需要 48s,另一个得到 286743 行没有 Sort 需要 5s。一个数据库是其他数据库的一个有点过时的副本。表中的行号顺序为 98 419 368。
我的问题是:
- 我不明白为什么嵌套循环加入需要排序?我尝试使用“OPTION (QUERYTRACEON 2340)”禁用它。该选项根本没有区别。
- 为什么执行时间差异如此之大?如何避免这种情况?
我使用 Sql Server 2014。
更新:
使用统计 IO:
表“CynergyResidualRecord”。扫描计数 1,逻辑读取 1226357,物理读取 0,预读读取 0,lob 逻辑读取 0,lob 物理读取 0,lob 预读读取 0。表“工作表”。扫描计数 0,逻辑读取 0,物理读取 0,预读读取 0,lob 逻辑读取 0,lob 物理读取 0,lob 预读读取 0。