3

トランザクションでいくつかのテーブルの更新を行う Java スレッドがあり、読み取り専用 transaction でテーブルを読み取る別のスレッドがあります。テーブルを読み取るスレッドは待機しており、結果を返さず、他のスレッドが更新を行った後にのみ戻ります。

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 に答える