0

在 SQL-Server 2016(使用 Management Studio 2016)上,我创建了两个相同的存储过程:一个使用 SET QUOTED_IDENTIFIER OFF编译,另一个使用ON编译。

这是使用 ON 执行的查询计划,即时结果,我们可以看到使用了正确的索引搜索:

https://www.brentozar.com/pastetheplan/?id=S1ZNIpZ8z

然后这就是问题所在,使用 OFF 执行,索引扫描花费了 5 秒以上

https://www.brentozar.com/pastetheplan/?id=SkCOUTWLf

以下是有罪索引的 DDL:

CREATE NONCLUSTERED INDEX [IX_CAB_NO_CAB_TYPE_CAB] ON [TraceTri].[CAB]
(
    [NO_CAB] ASC,
    [TYPE_CAB] ASC
)

CREATE NONCLUSTERED INDEX [IX_CAB_CHECKSUM] ON [TraceTri].[CAB]
(
    [CHECKSUM] ASC
)

我不明白查询计划如何完全受此 SET 选项的影响,因为它似乎与应该执行的方式没有联系?

4

0 回答 0