Max U
Дата: 28.03.2011 16:50:03
привет!
подскажите пожалуйста как оракл обрабатывает следующую ситуацию:
имеем один блок (принадлежащий таблице A) в котором нас интересуют две записи (rowid1, rowid2)
две различные сессии (Session1, Session2) модифицируют эти строки одного блока приблизительно следующим образом:
1. Session1: update A set col1=1 where rowid=rowid1;
2. SessionX: изменяет тот же самый блок и выполняет "commit;" (т.е. меняется SCN блока)
3. Session2: update A set col1=2 where rowid=rowid2;
4. Session1: commit;
5. Session2: commit;
т.е. эти две сессии хотят получить две разные версии одного и того же блока.
помогите пожалуйста ответить на следующие вопросы:
1. будут ли сконтструированы различные версии одного блока в Buffer Cache?
2. как эти грязные блоки будут сброшены на диск, чтобы не возникло путаницы? (будет ли здесь задействован список ITL - Interested Transaction List и если да то как?)
спасибо!