为什么存储过程比直接执行sql语句要慢很多

newxdlysk 2013-05-16 03:19:10
如题,
在维护一个系统,执行sp要25秒,直接执行sql语句瞬出
google一下
通过使用declare声明的变量来代替参数,这个并没有明显效果。
想了解一下还有其他什么原因
...全文
502 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
CHQIUU 2013-05-16
  • 打赏
  • 举报
回复
存储过程重新编译一下看看
發糞塗牆 2013-05-16
  • 打赏
  • 举报
回复
存储过程并不是对所有的参数都高效,因为数据分布有可能导致某些数据查询时使用执行计划1,但是对于另外一部分的数据,使用执行计划2会更加高效,但是由于缓存的原因,导致依旧使用执行计划1,从而使得效率不高
daiyueqiang2045 2013-05-16
  • 打赏
  • 举报
回复
你的存储过程需要重新编译一下。 你也看一下存储过程和sql执行的计划有什么不同。
  • 打赏
  • 举报
回复
很明显,是参数嗅探问题。
Mr_Nice 2013-05-16
  • 打赏
  • 举报
回复
存储过程重新编译一下看看。 with recompile 参考http://msdn.microsoft.com/zh-cn/library/ms190439.aspx
  • 打赏
  • 举报
回复
不懂,友情帮顶

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧