2015-06-10 16:37:10,388 [39] ERROR BLL.WxUserInfo [(null)] <(null)>
- System.Data.SqlClient.SqlException: Transaction (Process ID 98) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
在 System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
在 System.Data.SqlClient.SqlDataReader.get_MetaData()
在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
在 System.Data.SqlClient.SqlCommand.ExecuteScalar()
在 SubSonic.SqlDataProvider.ExecuteScalar(QueryCommand qry)
在 SubSonic.DataService.ExecuteScalar(QueryCommand cmd)
在 SubSonic.ActiveRecord`1.Save(String userName)
在 PirateBay.WebWeiXin.BLL.WxUserInfo.SaveToDb(WxUserInfo pWxUserInfo, WxUser pWxUser, Boolean pIsNew)
------解决思路----------------------
通过sql profiler来监控一下死锁吧,然后找找原因是什么,看看能否避免,或者是修改代码。
其实死锁主要是因为访问资源的时候,用不同顺序来获取资源,就容易导致 相互锁住,最后导致死锁
------解决思路----------------------
修改业务逻辑,更新处理方式。尽量避免资源竞争,事务尽量短小精干
------解决思路----------------------
更新多表使用相同的順序
------解决思路----------------------
看是哪些语句导致的,这样才好想办法
------解决思路----------------------
跟踪一下,看看是不是语句有问题