7

正如标题所述,我不明白为什么 sp_executeSQL 会生成与从 Sql Management Studio 运行查询完全不同的执行计划。

从 SQL 管理工作室运行时,我的查询需要 3 秒,而通过 sp_executeSQL 在管理工作室中运行的查询需要 5 分钟。

我已经更新了统计数据,并查看了索引,但我仍然记得 sp_executeSQL 的执行计划比直接从我的管理工作室运行 sql 差得多。

所以这是我的问题:为什么以这两种不同的方式运行查询之间的执行计划会有很大差异?

谢谢

4

2 回答 2

5

看到这个

基本上, 同一过程可以有多个[执行]计划

于 2011-03-30T15:29:43.947 回答
2

考虑一下。当你执行一个存储过程时,这个过程会有它自己的执行计划。当你执行一个查询语句时,它又会有自己的执行计划。现在,当使用 sp_executeSQL 时,您正在运行此存储过程以动态执行查询。所以本质上它的执行计划是 sp_executeSQL 和你的查询的组合。

于 2011-03-30T14:48:02.627 回答