我正在研究一个遭遇僵局的数据库.我们正在使用NHibernate开发数据库.有哪些解决我们在特定表周围看到的死锁的常用方法是什么? 最佳答案 最好的解决方案,使用存储过程来控制数据访问,以便您可以直接编写TSQL代码. nHibernate可以很好地调用存储过程.
但是,由于该解决方案几乎不会过去,您可以尝试治疗症状.首先,确保表上有良好的索引,以便从nHibernate运行的查询尽可能地执行.其次,如果您使用的是SQL SErver 2008,请使用read committed snapshot isolation.这将对你看到的锁定和阻塞产生巨大的影响,这两者都会导致死锁.
另外,请将服务器设置为针对Ad Hoc Workload进行优化.这将从根本上帮助内存和过程缓存管理.