Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
 Справедливо утверждать, что в MSSQL пессимистические блокировки а Oracle оптимистические?  [new]
VERSION
Guest
Справедливо ли утверждать для упрощения, что MS SQL (в блокировочных уровнях изоляции) использует Пессимистические блокировки, а Oracle использует Оптимистические блокировки?


Пессимистическая блокировка и Оптимистическая блокировка
автор
Пессимистическая блокировка накладывается перед предполагаемой модификацией данных на все строки, которые такая модификация предположительно затрагивает.

Оптимистическая блокировка не ограничивает модификацию обрабатываемых данных сторонними сессиями, однако перед началом предполагаемой модификации запрашивает значение некоторого выделенного атрибута каждой из строк данных (обычно используется наименование VERSION и целочисленный тип с инициальным значением 0).
12 авг 16, 17:46    [19535481]     Ответить | Цитировать Сообщить модератору
 Re: Справедливо утверждать, что в MSSQL пессимистические блокировки а Oracle оптимистические?  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 9651
Оптимистичная / пессимистичная обычно относится к уровню _приложения_. Обзывать так блокировки накладываемые СУБД - как то странно. IMHO
12 авг 16, 19:02    [19535693]     Ответить | Цитировать Сообщить модератору
 Re: Справедливо утверждать, что в MSSQL пессимистические блокировки а Oracle оптимистические?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 65899
Блог
VERSION
Справедливо ли утверждать для упрощения, что MS SQL (в блокировочных уровнях изоляции) использует Пессимистические блокировки, а Oracle использует Оптимистические блокировки?

Нет.
14 авг 16, 00:23    [19538281]     Ответить | Цитировать Сообщить модератору
 Re: Справедливо утверждать, что в MSSQL пессимистические блокировки а Oracle оптимистические?  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34697
VERSION
Справедливо ли утверждать для упрощения, что MS SQL (в блокировочных уровнях изоляции) использует Пессимистические блокировки, а Oracle использует Оптимистические блокировки?


[


нет. оба пессимистические используют.
14 авг 16, 00:38    [19538308]     Ответить | Цитировать Сообщить модератору
 Re: Справедливо утверждать, что в MSSQL пессимистические блокировки а Oracle оптимистические?  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34697
VERSION,

от уровня изоляции транзакции это не зависит, потому что это работает на минимальном уровне (уровень 0, write committed).
14 авг 16, 00:42    [19538318]     Ответить | Цитировать Сообщить модератору
 Re: Справедливо утверждать, что в MSSQL пессимистические блокировки а Oracle оптимистические?  [new]
booby
Member

Откуда:
Сообщений: 2534
VERSION
Справедливо ли утверждать для упрощения, что MS SQL (в блокировочных уровнях изоляции) использует Пессимистические блокировки, а Oracle использует Оптимистические блокировки?


Пессимистическая блокировка и Оптимистическая блокировка
...


дааа...
Это вам не мельдоний - настоящая синтетика.
Какой кошмар.
14 авг 16, 01:38    [19538414]     Ответить | Цитировать Сообщить модератору
 Re: Справедливо утверждать, что в MSSQL пессимистические блокировки а Oracle оптимистические?  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
VERSION
Справедливо ли утверждать для упрощения, что MS SQL (в блокировочных уровнях изоляции) использует Пессимистические блокировки, а Oracle использует Оптимистические блокировки?


Пессимистическая блокировка и Оптимистическая блокировка
автор
Пессимистическая блокировка накладывается перед предполагаемой модификацией данных на все строки, которые такая модификация предположительно затрагивает.

Оптимистическая блокировка не ограничивает модификацию обрабатываемых данных сторонними сессиями, однако перед началом предполагаемой модификации запрашивает значение некоторого выделенного атрибута каждой из строк данных (обычно используется наименование VERSION и целочисленный тип с инициальным значением 0).

Оракл поддерживает средства для организации пессимистической блокировки: запросы на чтение с блокировкой. Оптимистическая предполагает запоминание на клиенте прочитанного и поверку перед сохранением не изменена ли уже запись: может тоже перед проверкой не было ли изменений и сохранением выполнить запрос с блокировкой, чтобы никто в это время не изменил.
14 авг 16, 14:49    [19539008]     Ответить | Цитировать Сообщить модератору
 Re: Справедливо утверждать, что в MSSQL пессимистические блокировки а Oracle оптимистические?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 53412

vadiminfo
Оптимистическая предполагает запоминание на клиенте прочитанного и поверку перед
сохранением не изменена ли уже запись: может тоже перед проверкой не было ли изменений и
сохранением выполнить запрос с блокировкой, чтобы никто в это время не изменил.

Какая кривая и ненадёжная эмуляция SNAPSHOT транзакции...

Posted via ActualForum NNTP Server 1.5

14 авг 16, 14:54    [19539018]     Ответить | Цитировать Сообщить модератору
 Re: Справедливо утверждать, что в MSSQL пессимистические блокировки а Oracle оптимистические?  [new]
VERSION
Guest
MasterZiv
VERSION
Справедливо ли утверждать для упрощения, что MS SQL (в блокировочных уровнях изоляции) использует Пессимистические блокировки, а Oracle использует Оптимистические блокировки?


[


нет. оба пессимистические используют.

Даже на уровне изоляции транзакции Snapshot в MS SQL пессимистические используются?

https://msdn.microsoft.com/ru-ru/library/tcbchxcb(v=vs.110).aspx
В подходе с изоляцией моментального снимка используется модель оптимистического параллелизма. Если транзакция моментального снимка попытается зафиксировать изменения в данных, произошедшие после начала транзакции, то будет произведен откат транзакции и возникнет ошибка.


https://msdn.microsoft.com/ru-ru/library/tcbchxcb(v=vs.110).aspx
Транзакция работает с последними версиями строк, имеющими порядковый номер, предшествующий порядковому номеру транзакции. Более новые версии строк, созданные после начала транзакции, не учитываются.


По описанию очень близко к:
https://ru.wikipedia.org/wiki/Блокировка_(СУБД)#.D0.9F.D0.BE_.D0.BB.D0.BE.D0.B3.D0.B8.D0.BA.D0.B5_.D1.80.D0.B5.D0.B0.D0.BB.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D0.B8
Оптимистическая блокировка не ограничивает модификацию обрабатываемых данных сторонними сессиями, однако перед началом предполагаемой модификации запрашивает значение некоторого выделенного атрибута каждой из строк данных (обычно используется наименование VERSION и целочисленный тип с инициальным значением 0). Перед записью модификаций в базу данных перепроверяется значение выделенного атрибута, и если оно изменилось, то транзакция откатывается или применяются различные схемы разрешения коллизий.
14 авг 16, 16:42    [19539143]     Ответить | Цитировать Сообщить модератору
 Re: Справедливо утверждать, что в MSSQL пессимистические блокировки а Oracle оптимистические?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 65899
Блог
Да бог с ним. Ну не видит человек разницы между сосиской и рулоном обоев, так в конце концов то и другое делается из бумаги. Пусть его.
14 авг 16, 16:58    [19539163]     Ответить | Цитировать Сообщить модератору
 Re: Справедливо утверждать, что в MSSQL пессимистические блокировки а Oracle оптимистические?  [new]
VERSION
Guest
softwarer
Да бог с ним. Ну не видит человек разницы между сосиской и рулоном обоев, так в конце концов то и другое делается из бумаги. Пусть его.

Увидел такую ошибку и решил тут узнать мнение у экспертов:
http://www.orafaq.com/papers/locking.pdf
The Oracle database uses optimistic locking by default.

Отсюда: http://www.orafaq.com/wiki/Papers
14 авг 16, 17:22    [19539210]     Ответить | Цитировать Сообщить модератору
 Re: Справедливо утверждать, что в MSSQL пессимистические блокировки а Oracle оптимистические?  [new]
VERSION
Guest
Leonid Kudryavtsev
Оптимистичная / пессимистичная обычно относится к уровню _приложения_. Обзывать так блокировки накладываемые СУБД - как то странно. IMHO


https://en.wikipedia.org/wiki/Optimistic_locking
(Redirected from Optimistic locking)
https://en.wikipedia.org/wiki/Optimistic_concurrency_control
Optimistic concurrency control (OCC) is a concurrency control method applied to transactional systems such as relational database management systems and software transactional memory.

https://en.wikipedia.org/wiki/Optimistic_concurrency_control
Some database management systems offer OCC natively - without requiring special application code.
14 авг 16, 19:20    [19539441]     Ответить | Цитировать Сообщить модератору
 Re: Справедливо утверждать, что в MSSQL пессимистические блокировки а Oracle оптимистические?  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
Dimitry Sibiryakov
vadiminfo
Оптимистическая предполагает запоминание на клиенте прочитанного и поверку перед
сохранением не изменена ли уже запись: может тоже перед проверкой не было ли изменений и
сохранением выполнить запрос с блокировкой, чтобы никто в это время не изменил.

Какая кривая и ненадёжная эмуляция SNAPSHOT транзакции...

Ну, возможно, это вообще в общем случае не эмуляция транзакций БД: так как после чтением записи из БД, и решением что-то изменить в ней допускается даже отключение приложения от БД при таком кривом подходе.
15 авг 16, 00:33    [19540146]     Ответить | Цитировать Сообщить модератору
 Re: Справедливо утверждать, что в MSSQL пессимистические блокировки а Oracle оптимистические?  [new]
Сергей Арсеньев
Member

Откуда:
Сообщений: 4118
VERSION,

Ну если мы говорим о блокировке на модификацию, то практически любая СУБД осуществляет оптимистическую блокировку. (редкая способна догадаться, что будет запрошено в следующей операции в рамках той же транзакции Картинка с другого сайта. )

Что говорить об операциях чтения, то тут Oracle вообще не поддерживает полный набор блокировок по умолчанию. В нем можно установить только блокировку на модификацию (Ну и используя уникальный constraint на вставку) или пользовательскую блокировку.

Более того, поскольку блокировки хранятся вместе с данными, то и сначала заблокировать, а потом прочитать автоматом не получится (хотя в режиме serializable можно получить отлуп если не удалось).

Но если это очень нужно, то можно сделать это вручную через вспомогательные элементы (сторонние объекты и пользовательские блокировки).
15 авг 16, 11:27    [19540901]     Ответить | Цитировать Сообщить модератору
 Re: Справедливо утверждать, что в MSSQL пессимистические блокировки а Oracle оптимистические?  [new]
оторвавшийся тромб
Member

Откуда:
Сообщений: 59
VERSION,

про блокировки -нет. А вот по самим СУБД -да, однозначно. Oracle оптимистичен
30 май 17, 16:01    [20524159]     Ответить | Цитировать Сообщить модератору
 Re: Справедливо утверждать, что в MSSQL пессимистические блокировки а Oracle оптимистические?  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 29805
оторвавшийся тромб,

да тут весь топик - чушь какая-то. Люди ахинею пишут, не задумываясь.
31 май 17, 00:44    [20525753]     Ответить | Цитировать Сообщить модератору
 Re: Справедливо утверждать, что в MSSQL пессимистические блокировки а Oracle оптимистические?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 65899
Блог
kdv,

есть ощущение, что не все сообщения топика дожили до этого дня.
31 май 17, 01:51    [20525805]     Ответить | Цитировать Сообщить модератору
 Re: Справедливо утверждать, что в MSSQL пессимистические блокировки а Oracle оптимистические?  [new]
архіваріюс
Guest
kdv
оторвавшийся тромб,

да тут весь топик - чушь какая-то. Люди ахинею пишут, не задумываясь.


15 лет назад на туже тему писали тоже самое )
9 июн 17, 22:16    [20554448]     Ответить | Цитировать Сообщить модератору
Все форумы / Сравнение СУБД Ответить