Брави, Oracle механика
заключване на кеша на редовете: глобално блокиране
С Иван Постников наблюдавахме/анализирахме рядкозаключване на зареждането на кеша на библиотеката изчакване, наблюдавано за редица сесии на 2-ри екземпляр за забележимо време:
, съдържанието на ROW_WAIT_OBJ# не е много полезно:
, съдейки по празнияSQL_EXEC_START /SQL_EXEC_ >
Дублиран LOB
Разочароващ е начинът, по който Oracle прилага убийствените функции на версия 11g -Дедупликация на LOB чрез обичайния странен индексUNIQUE, което значително ограничава възможностите за транзакционно използване, по-специално конкурентно попълване на таблици с дублиращи се LOB
Брави от тип RC - Result Cache при използване на MTS
При използване наМногонишков сървър заключвания от типRC - Кеш за резултати в AWR са съвсем очаквани, когато:
В този случай зависимостите на дървото на изчакване представляват по същество логична картина:
- с изключение наизчакване на виртуална верига, блокиране на достъпа до кеша наenq: RC - Кеш за резултати: Конкурс (още...)
Изграждане на индекс в ОНЛАЙН режим и изчакване на enq: MD - конкуренция
В 11.2.0.3, набързо, извън времето се опита да изгради индекс на таблица сматериализиран изглед log :
Обаче, забелязвайки дългото чаканеenq: MD - спор :
, се опита да прекрати сесията с помощта на Oracle:
След известно време на тази (разбира се, тестова ;) система бяха забелязани редица сесии при дълго чаканезаключване на кеша на библиотеката : (още...)
DML заключвания по директен път
Периодично alert.log версия 11.1.0.7 показва пакетни съобщения за грешка ORA-00060:
Причината за блокировките е известна - опит за едновременно изпълнение на няколко транзакции на еднатаблица впаралелен dml режим (промяна на сесията активиране на паралелен dml => V$SESSION.PDML_ENABLED='YES', след това 2 последователни непаралелни операции DELETE, INSERT /*+ APPEND*/ върху неразделената таблица TAB1 съставлява транзакцията) - и се отнася до разработката и архитектурата на приложението. Подробностите за показване и обработка на Oracle брави от типTM Lock Requesting Mode X (6) (SX X SX X) са интересни
В допълнение към необходимостта от преобразуване/ескалиране на заключването TM SX -> X при преминаване от DELETE къмвмъкване на директен път, първата следа не показва нищо неочаквано: (още...)
ORA-600 [sorput_1] блокиране на индекс на растерно изображение в Oracle версии 10.2 - 11.1
Има добре известни официални препоръки да не се използват растерни индекси в OLTP приложения поради архитектурни причини. За разрешаване на конфликти, които възникват по време на изпълнението на конкурентен DML, Oracle използва един вид механизъмdeadlock, който на практика може да бъде придружен от ORA-600:
Както се оказа, проблемът, който срещнахме - обикновен, точно описан в документа за поддръжка на Ora-600 [sorput_1] и Ora-60 Loading Data [ID 826084.1] - не е грешка и като единственото решение се предлага да се отървем от растерни индекси, за продължителността на OLTP активността (или завинаги :)
Детайлите на описанието награфиката на блокиране са сравнително стандартни за заключвания на битов индекс: (още...)