Показать сообщение отдельно
  #5  
Старый 24.09.2009, 15:19
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию Транзакции и данные отмены



Транзакции и данные отмены

Когда транзакция начинается, ей назначается сегмент отмены (undo segment). Во время жизни транзакции перед любыми выполняемыми ею изменениями первоначальные значения данных копируются в сегмент отмены. Каким транзакциям какие сегменты отмены назначены, можно выяснить, запросив информацию из динамического представления производительности v$transaction.

Сегменты отмены автоматически создаются экземпляром по мере необходимости для поддержки транзакций. Это специальные сегменты, но подобно другим видам сегментов они состоят из экстентов, содержащих блоки данных. Сегменты отмены автоматически растут и сжимаются (shrink), когда это необходимо. Они предоставляют буферное пространство, заполняемое 'по кругу' соответствующими транзакциями.

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

Примечание: Параллельные операции DML могут сопровождаться ситуацией, когда одна транзакция использует несколько сегментов отмены. Дополнительные сведения о параллельном выполнении команд DML см. в документе Oracle Database Administrator's Guide 10g.
__________________
Телеграм чат
Ответить с цитированием