存储过程/查询永远执行(它没有完成或超时)

时间:2011-10-08 09:11:05

标签: database tsql

我正在使用SQL server 2005,SQL server studio客户端。我有一个很长的存储过程(它有一堆表连接,一些删除,一些插入和一些更新)定期运行(大约每隔2分钟)。

我有了这个sp之后,我注意到我的数据库有时没有响应(当SP没有运行时会发生几次,并且在SP运行期间很多次都会发生)。当数据库没有响应时,我无法从SQL Server工作室客户端打开新连接,如果我运行查询/ sp状态将运行并永远保持,直到我从控制面板管理员手动重置SQL服务工具。

你见过类似的问题吗?

是否可能是因为我新创建的SP做了太多事情并导致数据库崩溃?

2 个答案:

答案 0 :(得分:0)

听起来你的SP可能会造成锁定。您可以使用SQL事件探查器尝试深入了解可能发生的情况。这是一个提供更多信息的链接 -

http://www.simple-talk.com/sql/learn-sql-server/how-to-track-down-deadlocks-using-sql-server-2005-profiler/

答案 1 :(得分:0)

更多快速提示:

  • 您可以使用sp_who2命令查看数据库上的当前会话,并确定SP是否被阻止,或阻止其他进程。
  • 检查SP的估计执行计划,并查找缓慢的来源,例如表扫描。
  • 您的SP可能在单个事务中进行了太多更改,并填写了事务日志或导致其增长。检查数据库的恢复模式,以及是否定期进行备份,以便可以重用事务日志空间。考虑将大型修改批处理为较小的块。