Предлагаю Вашему вниманию мою статью о новых возможностях Oracle Database 11g.
Новые возможности Oracle Database 11g
Источник информации: Oracle Magazine May/June 2008
v:1.0 2008.07.07
Вы когда-нибудь сталкивались с чем-нибудь типа такого?
SQL> alter table emp add resume blob;
Alter table emp add resume blob
*
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified
В загруженных системах операции определения данных (DDL) практически невозможно выполнить, поскольку они не ждут завершения текущей транзакции.
Вы можете пытаться выполнить выражение ALTER TABLE тысячи раз в течение многих часов. И все будет безуспешно.
Сейчас Вы можете указать Oracle Database 11g поместить это выражение в очередь, дождаться возможность заблокировать таблицу,
выполнить выражение DDL и снять блокировку. Например, Вы выполняете выражение
SQL> alter session
Set dll_lock_timeout =6;
Session altered
На сервере Oracle Database 11g, Выше выражение DDL будет ждать в течение шести секунд, и только спустя это время в случае неудачи
вернет ошибку:
ORA-00054: resource busy and acquire with NOWAIT specified
Таким образом, DBA (администратор базы данных) может указать какое время надо ожидать завершение текущей транзакции.
В заключении, еще одна интересная новая возможность Oracle Database 11g.
Вы можете перевести таблицу в режим только чтение. Операции языка определения данных (DDL) и языка модификации данных (DML) будут недоступны
для такой таблицы. В следующем примере таблица переводится в режим только чтения, и выполняется попытка изменить таблицу.
SQL>alter table emp read only;
Table altered.
SQL> alter table emp add resume blob;
alter table emp add resume blob
*
ERROR at line 1:
ORA-12081: update operation not allowed on table "OPS$ORACLE"."EMP"