Тема: Sessions
Показать сообщение отдельно
Старый 03.09.2004, 18:03   #6  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,913 / 5736 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Она не с более шадащим уровнем изоляции. Она просто другая со своим отдельным контекстом транзакций. И это не только для Оракла, это и для MS SQL.

Если совсем коротко: Представим ситуацию при которой у нас
а) все документы ГК родятся из одной номерной серии
б) механизм использования отдельной сессии для номерных серий не включен (Допустим MBS его не сделал
в) идет разноска очень толстой закупки допустим на 10000 строк
Весь журнал - само собой- разносится в одной транзакции.
В начале транзакции у нас обновляется следующее значение в строке таблиц номерных серий. (Система генерирует новый номер документа ГК).
А потом до самого конца транзакции, которая может часочек продлится, эта запись остается заблокированной, а другие рабочие станции которым тоже хочется получить очередной домер документа ГК, весь час просто стоят в очереди к этой записи.

Соответственно - в MBS для ЛЮБЫХ операций с номерными сериями используется отдельная сессия. И все транзакции внутри этой сессии ГАРАНТИРОВАНО короткие. По принципу - начали транзакцию, прочитали,заблокировали, обновили, завершили транзакцию.
Но вообще-то все равно при очень большом количестве пользователей конкуренция за доступ к записи таблицы номерных серий дает о себе знать и немножко снижает производительность. На глаз это не заметно, но факт остается фактом.