日期:2014-05-18  浏览次数:20542 次

非常的急,问数据库死锁问题。
这是我的ms sql 语句,想问问高手如何优化 才能避免数据库死锁。
sql0="SELECT tbuser.username, tbnianji.nianji, tbbanji.banji, tbpower.power FROM tbuser INNER JOIN ((tbpower INNER JOIN tbbanji ON tbpower.banjiid = tbbanji.banjiid) INNER JOIN tbnianji ON tbpower.nianjiid = tbnianji.nianjiid) ON (tbuser.banji = tbbanji.banji) AND (tbuser.nianji = tbnianji.nianji) WHERE (((tbuser.username)='"&username&"'));"

-------------------------------------
Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'

[Microsoft][ODBC SQL Server Driver][SQL Server]事务(进程 ID 58)与另一个进程已被死锁在 lock 资源上,且该事务已被选作死锁牺牲品。请重新运行该事务。

/kaoshi.asp,行 190

------解决方案--------------------
建议你使用table hint -- WITH (NOLOCK), 如果允许read uncommitted的话