从C#调用时,具有不同名称的相同SPROC执行的方式不同

时间:2015-06-04 20:14:54

标签: c# sql-server-2008 stored-procedures

我有两个相同的存储过程,但名称不同。当我从C#调用Sproc A时,与Sproc B相比,我获得了更快的整体响应。当我在SSMS中运行每个Sproc并包含执行计划时,我得到了非常接近相同的结果。关于什么可能导致这种歧视的任何想法?

1 个答案:

答案 0 :(得分:1)

你传递相同的参数吗?我相信procs在第一次编译时会收到查询计划,并且该计划基于传递的参数。因此,根据最初的调用方式,他们可能会有不同的查询计划。作为测试,在它们上运行sp_recompile并确保它们在第一次使用相同的参数进行调用,以便它们获得相同的查询计划。