DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Конфигурируем initrans


У каждого блока данных Oracle имеется область заголовка, в которой обыч­но хранятся (наряду с другими структурами) сведения о каталоге, в котором раз­мещена таблица, каталог строки и слоты транзакций. 

Слоты транзакций

используются транзакциями для того, чтобы идентифицировать самих себя в
блоке перед тем, как транзакции попытаются модифицировать одну или неско­лько строк в блоке. Эти слоты играют главную роль в методологии Oracle, кото­рая используется для реализации блокировки уровня строки и обеспечения согласованных по чтению представлений данных.
Когда транзакции требуется модифицировать строки в блоке, она должна сначала "прописаться" в доступном слоте транзакции в области заголовка блока. Затем, основываясь на номере слота, использованного в блоке, устанавливается
байт блокировки для каждой строки, которую он модифицирует, чтобы указать
на то, что в настоящий момент эти строки блока модифицируются. Так, если транзакция прописывается в слот транзакции 2 в заголовке блока, байты блоки­ровки для каждой модифицируемой строки блока (в области интересов этой
транзакции) получат числовое значение 2. Это облегчает другим запросам или транзакциям, посещающим тот же самый блок, определить, подвергается ли блок в данный момент каким-либо изменениям, и не блокированы ли те данные,
которые в настоящий момент собирается обновить эта транзакция, какими-ли­бо другими транзакциями. Слоты транзакций и байты блокировки уровня стро­ки являются основными компонентами, облегчающими блокировку на уровне строки и        поддержку многоверсионной модели согласован-
ности по чтению Oracle. Мы обсудим эти вопросы более подробно в главе "На­стройка конкуренции".
Параметр хранения уровня блока 

initrans 

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

initrans

равноЛ для таблиц и 2 для ин-
дексов. Таким образом, когда вторая транзакция попытается модифицировать
данные в том же самом блоке (посредством операций вставки, обновления или
а первый слот транзакции в этот момент времени недоступен, будет
занято 24 байта из 

pctfree для 

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

initrans 

для исклю­чения конкуренции на уровне блока, производимое всякий раз, когда изменяет­ся размер блока базы данных Oracle, не только желательно, но и настоятельно рекомендуется.
 


купить диплом университета . proton perdana is an intermediate-size automobile produced by proton.







jAntivirus