存储过程的实际执行时间问题

efei 2011-10-28 01:03:54
一个存储过程,用程序执行下来要1秒多,但是用Profile查看,实际的执行时间只有10ms
在Management里时间也只有10ms

这种情况可能是什么原因,怎么去排查?

我觉得好像和锁、事务之类的有关系。
...全文
108 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
--小F-- 2011-10-28
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 efei 的回复:]
感谢大家的回复,我最终找到原因了,真想骂人啊

服务器程序所在的那台机器,与数据库服务器局域网连接不知道怎么回事,异常慢
我现在改用外网地址就没问题
[/Quote]
大力水手 2011-10-28
  • 打赏
  • 举报
回复
呵呵, 数据不是做的交叉备吧.日志文件不大的话应该也占用不了多大的网络流量
efei 2011-10-28
  • 打赏
  • 举报
回复
感谢大家的回复,我最终找到原因了,真想骂人啊

服务器程序所在的那台机器,与数据库服务器局域网连接不知道怎么回事,异常慢
我现在改用外网地址就没问题
唐诗三百首 2011-10-28
  • 打赏
  • 举报
回复
用程序执行要先建立ADO控件, 建数据库连接, 数据库分配连接, 执行SP, 结果集返回给Dataset,

Dataset再绑定数据给前端程序的Datagrid, 这些都要时间喔.
勿勿 2011-10-28
  • 打赏
  • 举报
回复
这点时间是可以忽略的。 估计是连接耽误了点点时间,而且实际的情况如果你把这个也考虑在其中的话也没办法优化的了。
-晴天 2011-10-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 efei 的回复:]
在程序里比较执行前和执行后的时间就可以得到总的执行时间了
[/Quote]
这么说你在程序调用这个存储过程前用了一个变量记录当前本地时间,然后存储过程调用完后再用当前时间减保存的值了?
这到是个好主意,可以检测一个数据库对象连接并执行一段程序的总时间,包括连接数据库在内,不过你的存储过程可能是无辜的,或许是因为连接而耽误了时间.
我想这个时间或许不是一个定值,你反复执行这段程序,看时间有何变化.
efei 2011-10-28
  • 打赏
  • 举报
回复
在程序里比较执行前和执行后的时间就可以得到总的执行时间了
hao1hao2hao3 2011-10-28
  • 打赏
  • 举报
回复
程序的响应也是要时间的。你都用跟踪工具跟踪到了执行的时间是10ms,那就是这个过程在数据库里面的执行时间了。程序反馈你的过程执行的结果也是需要时间的。
-晴天 2011-10-28
  • 打赏
  • 举报
回复
再说,1秒多是什么概念,你怎么测出这个1秒来的?
-晴天 2011-10-28
  • 打赏
  • 举报
回复
第一次执行可能会慢一些,要编译,以后执行时间会缩短.
louzq17 2011-10-28
  • 打赏
  • 举报
回复
待继++++
efei 2011-10-28
  • 打赏
  • 举报
回复
连接是一直在的,不是执行一次就连接断开一次。

这个之前是好的,程序上没有变动

但是数据库里的一些存储过程有过变动
Lyongt 2011-10-28
  • 打赏
  • 举报
回复
程序执行有个连接相应的时间,
程序执行的总时间 = 连接握手时间 + 数据库执行时间 + 返回结果时间
肯定比在数据库中直接执行慢。

22,210

社区成员

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

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