Управление размером транзакций
При работе с транзакциями важно, чтобы транзакции были как можно более короткими. Применяемый по умолчанию режим автофиксации, который можно включить или отключить с использованием метода setAutoCommit, будет фиксировать каждое действие. Это самый простой режим работы для большинства разработчиков.
При использовании ручных транзакций убедитесь, что код фиксирует транзакцию как можно скорее. Будучи открытой, транзакция блокирует доступ к данным для остальных пользователей. Например, хорошим приемом программирования считается помещение вызова rollback в блок catch, а вызова commit — в блок finally
. Но это зависит от конструкции вашего приложения.
Чтобы повысить степень параллелизма, необходимо уменьшить размер транзакций. Например, если вы запускаете транзакцию вручную и изменяете 10 000 строк в таблице с 20 000 строками, половина таблицы будет заблокирована для других пользователей, даже если они будут только читать данные. Сокращение же модификаций до 2 000 строк оставит таблицу доступной на 90 процентов.
Кроме того, обязательно используйте параметр истечения времени блокировки, если в приложении ожидаются проблемы с блокировками. Для этого можно использовать метод setLockTimeout. Установленное по умолчанию значение истечения времени блокировки равно –1. Это означает блокировку на неопределенно долгое время в ожидании блокировки. Можно установить время ожидания блокировки в 30 секунд, чтобы настроить истечение времени ожидания заблокированного соединения через 30 секунд в случае блокировки другим подключением.
См. также раздел
Повышение производительности и надежности с помощью JDBC Driver
Кері байланыс
https://aka.ms/ContentUserFeedback.
Жақында қолжетімді болады: 2024 жыл бойы біз GitHub Issues жүйесін мазмұнға арналған кері байланыс механизмі ретінде біртіндеп қолданыстан шығарамыз және оны жаңа кері байланыс жүйесімен ауыстырамыз. Қосымша ақпаратты мұнда қараңыз:Жіберу және пікірді көру