我打破我的头在这个问题上,因为长。 我已存储过程在MS SQL,当我尝试通过SQL查询提供所有的参数来执行过程,需要很长的时间来执行,但是当我尝试直接运行该查询其是否有在SP它在任何时间执行。 这是影响也为我们使用存储过程来从数据库服务器中的数据我的应用程序的性能。
请帮忙。
问候,
维克拉姆
我打破我的头在这个问题上,因为长。 我已存储过程在MS SQL,当我尝试通过SQL查询提供所有的参数来执行过程,需要很长的时间来执行,但是当我尝试直接运行该查询其是否有在SP它在任何时间执行。 这是影响也为我们使用存储过程来从数据库服务器中的数据我的应用程序的性能。
请帮忙。
问候,
维克拉姆
貌似参数嗅探。
这里是一个很好的解释: 我闻到的参数!
基本上,SQL服务器已经缓存查询执行计划,这是第一次运行与参数,使该计划不是最佳的要传递的新值。 当您运行直接在那一刻产生计划的查询所以这就是为什么它的速度快。
您可以使用手动标记重新编译的程序sp_recompile或在其定义中使用with recompile选项,所以它是在每次运行时编译。