根据QUOTED_IDENTIFIER设置的内容,存储过程的查询计划有何不同?

时间:2018-02-02 07:46:13

标签: sql-server sql-execution-plan quoted-identifier

在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选项的影响,因为它似乎与它应该执行的方式没有关联?

0 个答案:

没有答案