Я немного разбираюсь в блокировке Oracle - как обновления блокируют другие обновления до завершения транзакции, как писатели не блокируют читателей и т. д.
Я понимаю концепцию пессимистической и оптимистичной блокировки, а также типичные примеры банковских учебников о потере потерянных обновлений и т. д.
Я также понимаю уровни изоляции транзакций JDBC, когда мы могли бы сказать, например, что мы довольны просмотром незафиксированных данных.
Однако я немного не понимаю, как эти понятия связаны и взаимодействуют. Например:
- Обеспечивает ли Oracle пессимистическую или оптимистическую блокировку по умолчанию (просто кажется, что она блокирует отдельное обновление на основе экспериментов в двух сеансах TOAD).
- Если, как я подозреваю, это концепции уровня приложения, зачем мне утруждать себя реализацией стратегии блокировки, если я все равно могу позволить базе данных синхронизировать обновления транзакций?
- Как уровни изоляции транзакций (которые я установил для соединения) изменяют поведение базы данных, когда другие клиенты, помимо моего приложения, обращаются к ней с другими уровнями изоляции.
Буду очень признателен за любые слова, разъясняющие эти темы!