2015-01-22 8 views
2

У меня есть поток java, который обновляет несколько таблиц в транзакции, и есть еще один поток, который читает таблицы с транзакцией только для чтения. Поток, который читает таблицы, ждет и не перенастроит результат и возвращается только после того, как другой поток выполнил обновление.Спящий режим с выпуском MS SQL Server 2012 с блокировками таблиц и параллельным запросом

Случай другой, если БД является mysql, где обновление и запрос происходят параллельно и не ждут. Я что-то пропустил на стороне MS SQL. Что нужно сделать, чтобы сделать его параллельным. Это происходит из-за блокировки таблиц в MS Sql Server.

МС Sql Настройка сервера спящего режима:

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

db.dialect = org.hibernate.dialect.SQLServer2008Dialect

Спящий режим: v4.3.6.Final

Подключение Бассейн: HikariCP-java6 - v2.2.5

ответ

1

в T-SQL вы можете использовать UNLOCK команду, в this link вы можете увидеть полное описание. Также вы можете использовать WITH (NOLOCK) при выборе из таблицы, как:

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

Но в Hibernate с MS SQL Server Я действительно не знаю, как реализовать NOLOCK если вы найти решение для этого сообщите нам я Следуйте этому вопросу.

+0

Спасибо за ответ. Я до сих пор не понял решения. Я, вероятно, воспользуюсь вашим решением, сбив спящий режим и используя шаблоны jdbc для обновления – tanmally

+0

, пожалуйста, я надеюсь, что вы скоро исправите проблему. удачи. – jfun

 Смежные вопросы

  • Нет связанных вопросов^_^