是否可以针对特定的表变量"值"进行优化?



让我们假设我在SQL Server 2016上运行以下查询:

declare @Ids as table
(
    Id int
)
-- Insert some values into @Ids table
select
    *
from dbo.Foos
where FooId in (select Id from @Ids)

现在让我们想我要 OPTIMIZE FOR @ids表的特定"值"。甚至有可能提供这样的提示吗?我尝试过option (optimize for (@Ids = (values(1), (2)))),但没有编译

预先感谢

不,您不能以这种方式使用该选项。让我们看一下文档:

优化( @variable_name {unknown | = literal_constant } [, ... n](指示查询优化器使用 a 的特定值 本地变量汇编和优化查询时。值是 仅在查询优化时使用,而在查询执行过程中不使用。

@variable_name 是查询中使用的本地变量的名称 提示。

因此,该选项适用于局部变量,但不是对表变量,这是绝对不同的。

提示(transact -sql( - 查询

相关内容

  • 没有找到相关文章

最新更新