Sql 相同查询的查询执行计划

Sql 相同查询的查询执行计划,sql,sql-server,Sql,Sql Server,观察: 我使用cmd.ExecuteNonQuery()通过.net代码执行相同的查询,并通过传递参数值直接在SQL Server Management Studio中执行相同的查询 当我通过代码执行它时,它会运行很长一段时间(15-20分钟),而当我在SQL Server中使用相同的参数执行时,它会在几秒钟内完成 花费较长时间的原因是查询的性能问题,通过在其中一个表中引入非聚集索引解决了这个问题 我仍然想知道,尽管环境条件相同,为什么SQL Server要提前几秒钟。是因为执行计划的不同吗?有

观察:

我使用
cmd.ExecuteNonQuery()
通过.net代码执行相同的查询,并通过传递参数值直接在SQL Server Management Studio中执行相同的查询

当我通过代码执行它时,它会运行很长一段时间(15-20分钟),而当我在SQL Server中使用相同的参数执行时,它会在几秒钟内完成

花费较长时间的原因是查询的性能问题,通过在其中一个表中引入非聚集索引解决了这个问题


我仍然想知道,尽管环境条件相同,为什么SQL Server要提前几秒钟。是因为执行计划的不同吗?有什么想法吗?

嗨,是的,我已经有同样的问题了。sql server正在根据状态的执行位置选择不同的计划。一种解决方案是在代码中再次声明变量,并用参数设置它们。希望对您有所帮助。由于不同的会话选项,听起来像是不同的计划: