Все выходные угробил на поиск ответа на вопрос. Что такое TX блокировка в
разделяемом режиме. Тестирование производил на вставке двух одинаковых
первичных ключей в обычный таблицу. Вопрос конечно сложный. Если с
исключительным режимом TX при вставке всё понятно. Транзакция
вставляется строку и добавляет в свободный ITL информацию о блокировке.
Если другая транзакция попытается изменить строку, то она прочитает
данные из слота связанного со строкой и будет ожидать освобождения
транзакции.
При TX блокировке в 4 режиме ситуация немного другая.
Выяснил следующее. Если несколько сеансов добавляют строки с одним
первичным ключом в обыкновенную таблицу, то вначале эти строки
вставляются в блоки таблицы обычным образом. Затем блокируются
выставлением TX блокировки в исключительном режиме. Первый сеанс
вставляет ключ в блок индекса первичного ключа и выставляет TX
блокировку в исключительном режиме на эту строку индекса. Второй и
последующие сеансы делают запрос TX блоки
...
Читать дальше »