0

如果在 IN 子句中使用 10 个参数执行查询,然后再次执行相同的查询但使用 20 个参数,数据库服务器是否可以重用第一次运行的执行计划,或者每次都必须创建一个新的执行计划时间?

4

1 回答 1

0

IN我刚刚在 SQL Server 中进行了快速检查,当我从子句中添加/删除值时,看起来每个查询确实收到了自己的查询计划。

此代码将向您显示当前缓存的查询计划。您可以调整检查以text将其缩小到您自己的特定查询,然后查看在执行其他查询版本时是否显示新行。

SELECT TOP 10
    text,
    *
FROM
    sys.dm_exec_cached_plans AS CP
CROSS APPLY sys.dm_exec_sql_text(CP.plan_handle) ST
WHERE
    text LIKE 'select * from dbo.My_Table where%'
于 2016-02-26T17:00:27.077 回答