sql2008碰到一个奇怪问题,大家有没有碰到过啊

飞小猪 2014-01-13 05:57:39
同一个存储过程,从sqlserver profiler里监视,看到的语句执行时间是20秒以上,从监视器里把语句copy到查询分析器里执行,也就一两秒钟就能执行完毕。
请问这是神马情况,试了好多次都是这样。
这样直接导致程序超时异常,有人碰到过这种情况吗?

sqlserver的版本如下图:


OS的版本如下图:

...全文
150 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
飞小猪 2014-01-14
  • 打赏
  • 举报
回复
找到问题了,sql日志太大引起的,清理一下日志,查询耗时都变成1秒不到了,不过也不算大啊,才900多M,坑爹啊
飞小猪 2014-01-14
  • 打赏
  • 举报
回复
引用 3 楼 yupeigu 的回复:
你的意思是不是,你把存储过程中的语句拷贝出来,在ssms里执行,速度比较快?

这个倒是有可能的,可能是由于嗅探变量导致的,是由于存储过程在执行时,采用了错误的执行计划,导致查询速度太慢。

你看看,执行计划


不是拷贝存储过程里的语句,是拷贝的profiler里监视到的语句

下图是profile里监视到得程序调用的,duration是23秒多

下图是把监视到的执行语句原版拷贝到查询分析器里执行的结果,只花了3秒


这是为什么啊?郁闷
飞小猪 2014-01-14
  • 打赏
  • 举报
回复
引用 3 楼 yupeigu 的回复:
你的意思是不是,你把存储过程中的语句拷贝出来,在ssms里执行,速度比较快?

这个倒是有可能的,可能是由于嗅探变量导致的,是由于存储过程在执行时,采用了错误的执行计划,导致查询速度太慢。

你看看,执行计划


不是拷贝存储过程里的语句,是拷贝的profiler里监视到的语句

下图是profile里监视到得程序调用的,duration是23秒多

下图是把监视到的执行语句原版拷贝到查询分析器里执行的结果,只花了3秒


这是为什么啊?郁闷
  • 打赏
  • 举报
回复
你的意思是不是,你把存储过程中的语句拷贝出来,在ssms里执行,速度比较快? 这个倒是有可能的,可能是由于嗅探变量导致的,是由于存储过程在执行时,采用了错误的执行计划,导致查询速度太慢。 你看看,执行计划
  • 打赏
  • 举报
回复
不会吧,你确定你在sql profiler中看到的duration是正确的不
bbos1994 2014-01-13
  • 打赏
  • 举报
回复
没听说过,,,帮顶

22,207

社区成员

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

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