我最近开始了一个新的工作,他们有一个networking服务器与一个单独的数据库服务器交谈。 最近在运行ASP页面时会导致死锁错误,例如:
错误:MSSQL 2kTransaction(进程ID 103)locking资源与其他进程死锁,并被选为死锁受害者。 重新运行交易。
上述错误发生在asp页面试图访问MSSQL 2k数据库时。
他们认为这是一个服务器问题,所以我被要求处理它。 任何帮助将不胜感激。
通常死锁是数据库devise的一个问题,或者与应用程序访问数据库资源的方式不一致。 通常情况下,你会通过在那里做出改变来find问题的解决scheme,而不是基础设施。 在functiontesting期间经常没有find死锁,但是在进行性能和可扩展性testing时通常会发现死锁。
通过使用导致更详细信息logging到SQL日志的跟踪,可以帮助开发团队解决这个问题。
例如:DBCC TRACEON(3605,1205,-1) – 确保在完成日志消息捕获后closures此function(DBCC TRACEOFF)!
接下来,validation任何SQL安装的典型情况:
最后,开始计划迁移到SQL 2008 R2 – SQL 2000现在正处于主stream支持的末端,并在2013年退出扩展支持。
你需要了解为什么发生死锁。 请按照“ 检测并结束死锁和故障排除”中的产品文档的指导进行操作。
如何解决僵局是不可能的事先说,没有死锁信息。 通常,解决scheme是更改数据模型(例如添加缺less的索引)和/或修复应用程序devise(更改访问模式和查询)。