IIS 6.0 SQL 2000死锁的错误

我最近开始了一个新的工作,他们有一个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安装的典型情况:

  • 确保它在SP4
  • 有适当的硬件设置 – 在RAID 1驱动器上的日志文件,RAID 5驱动器上的数据文件,在RAID 1驱动器上的tempdb,以及在RAID 5驱动器上的备份 – 我将这称为任何真正的服务器的最低限度。
  • 有一个维护计划(备份,索引重build,完整性检查,更新统计)。 我相信SQL 2000有一个维护计划向导。

最后,开始计划迁移到SQL 2008 R2 – SQL 2000现在正处于主stream支持的末端,并在2013年退出扩展支持。

你需要了解为什么发生死锁。 请按照“ 检测并结束死锁和故障排除”中的产品文档的指导进行操作。

如何解决僵局是不可能的事先说,没有死锁信息。 通常,解决scheme是更改数据模型(例如添加缺less的索引)和/或修复应用程序devise(更改访问模式和查询)。