3

В Microsoft SQL Server, я использую READ_COMMITTED_SNAPSHOT ИЗОЛЯЦИИOracle эквивалент изоляции SQL Server Snapshot

ALTER DATABASE MyDatabase 
SET ALLOW_SNAPSHOT_ISOLATION ON 

ALTER DATABASE MyDatabase 
SET READ_COMMITTED_SNAPSHOT ON 

В сессии 1, обновить Принципала от 4000 до 5000

BEGIN TRAN 
Update MyTable Set Principal=5000 Where InvestorId=10 

Сейчас в сессии 2, Я говорю

Select Principal from MyTable where InvestorId=10 

Я получаю 4000, так как Сессия 1 Сделка не совершена.

Если я не использую режим изоляции READ_COMMITTED_SNAPSHOT и использовать

  1. READ COMMITTED Режим ИЗОЛЯЦИЯ тогда моя сессия 2 будет ждать
  2. Если я использую READ_UNCOMMITTED Mode ISOLATION тогда моя сессия 2 даст 5000 (эквивалентно использованию NOLOCK на операторе выбора)

в Oracle, если я выполнить эквивалентный набор команд, по умолчанию он ведет себя так, как будто режим изоляции READ_COMMITTED_SNAPSHOT устанавливается.

Я прочитал в статьях Майкрософт, что режим изоляции SNAPSHOT записывает в tempdb, прежде чем обновления будут выполнены.

-Как Oracle достигает этого по умолчанию?

-Это также записывается на диск? это вызывает проблемы с вводом/выводом?

- Является ли уровень блокировки по умолчанию в Oracle отличным от SQL-сервера?

Заранее благодарим за помощь и время.

+1

Там нет аналога для «READ_UNCOMMITTED Mode ИЗОЛЯЦИИ» в Oracle. –

+0

«READ_UNCOMMITTED ISOLATION» вы имеете в виду «POST» в Oracle? – Annjawn

ответ

3

В Oracle уровень изоляции READ_COMMITTED является режимом по умолчанию, то есть данные записываются в файл данных (диск) и доступны для выбора другими сеансами только после COMMIT. Для этого для этого используется сегмент UNDO. Это не вызывает проблемы ввода-вывода при выполнении выбора . Oracle использует блокировку уровня строк по умолчанию.

Вы можете посмотреть на главах 9 и 10 Oracle DataBase Concepts для получения более подробной информации

+0

Спасибо Vishad .. очень полезно – VenVig

+0

https://docs.oracle.com/cd/E17276_01/html/gsg_xml_txn/cxx/isolation.html#snapshot_isolation – suresh

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