Sql server 如何克服NHibernate访问的SQL Server数据库实例中的死锁?

Sql server 如何克服NHibernate访问的SQL Server数据库实例中的死锁?,sql-server,nhibernate,Sql Server,Nhibernate,我正在处理一个死锁数据库。我们正在使用NHibernate开发数据库。解决特定表死锁的常见方法有哪些?最好的解决方案是使用存储过程控制数据访问,以便直接编写TSQL代码。nHibernate可以调用存储过程 然而,由于这种解决方案几乎不会奏效,你可以尝试治疗这些症状。首先,确保表上有良好的索引,以便从nHibernate运行的查询能够尽可能地执行。其次,如果您在SQL SErver 2008+上,请使用读提交快照隔离。这将对锁定和阻塞产生巨大的影响,这两种情况都会导致死锁 另一方面,将服务器设置

我正在处理一个死锁数据库。我们正在使用NHibernate开发数据库。解决特定表死锁的常见方法有哪些?

最好的解决方案是使用存储过程控制数据访问,以便直接编写TSQL代码。nHibernate可以调用存储过程

然而,由于这种解决方案几乎不会奏效,你可以尝试治疗这些症状。首先,确保表上有良好的索引,以便从nHibernate运行的查询能够尽可能地执行。其次,如果您在SQL SErver 2008+上,请使用读提交快照隔离。这将对锁定和阻塞产生巨大的影响,这两种情况都会导致死锁


另一方面,将服务器设置为针对临时工作负载进行优化。这将从根本上帮助内存和过程缓存管理。

您正在运行哪种类型的数据库(MSSQL、Oracle等)?看起来像是