3

我有一个 java 线程更新事务中的几个表,还有另一个线程读取具有只读事务的表。读取表的线程正在等待并且不重新调整结果,并且仅在其他线程完成更新后才返回。

如果 DB 是 mysql ,其中更新和查询确实并行发生并且没有等待,情况就不同了。我是否在 MS SQL 方面遗漏了一些东西。需要做什么才能使其平行。这是因为 MS Sql Server 中的表锁而发生的。

MS Sql 服务器休眠设置:

db.driverClassName = com.microsoft.sqlserver.jdbc.SQLServerDataSource

db.dialect = org.hibernate.dialect.SQLServer2008Dialect

休眠版本:v4.3.6.Final

连接池:HikariCP-java6 - v2.2.5

4

1 回答 1

1

T-SQL中你可以使用UNLOCK命令,在这个链接中你可以看到它的完整描述。您也可以WITH (NOLOCK)在从表中选择时使用,例如:

SELECT *
FROM sample_table WITH (NOLOCK)
WHERE --conditions

但是在带有MS SQL Server的Hibernate中,如果您找到解决方案,我真的不知道如何实现它告诉我们我会关注这个问题。NOLOCK

于 2015-01-22T23:17:35.837 回答