Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 select + ddl  [new]
select11
Guest
2 сессии. В одной делается select * from T. В другой drop table T. Других запросов или DML к таблице T нет.

Я думаю, что drop table пройдет успешно. Эксперимент подтверждает это. Можно ли делать вывод, что select на локальной базе ни при каких условиях не будет блокировать DDL на таблицу?
28 июн 12, 12:50    [12788105]     Ответить | Цитировать Сообщить модератору
 Re: select + ddl  [new]
Дроппер
Guest
Гораздо смешнее попробовать угадать как поведет себя select... :)
На форуме ответ есть.
28 июн 12, 13:22    [12788332]     Ответить | Цитировать Сообщить модератору
 Re: select + ddl  [new]
select11
Guest
Где на форуме есть ответ?

Немного модифицировал эксперимент. Если удалить таблицу с опцией purge, тогда таблица удаляется, а select прерывается с

ERROR:
ORA-08103: object no longer exists
28 июн 12, 15:35    [12789373]     Ответить | Цитировать Сообщить модератору
 Re: select + ddl  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
select11
2 сессии. В одной делается select * from T. В другой drop table T. Других запросов или DML к таблице T нет.

Я думаю, что drop table пройдет успешно. Эксперимент подтверждает это. Можно ли делать вывод, что select на локальной базе ни при каких условиях не будет блокировать DDL на таблицу?

ну отчего же ни при каких условиях?
1) for update
2) не умрет gtt непустая (в любой сессии, хотя бы и только в той, где дроп)
28 июн 12, 15:53    [12789524]     Ответить | Цитировать Сообщить модератору
 Re: select + ddl  [new]
Select11
Guest
orawish
1) for update
2) не умрет gtt непустая (в любой сессии, хотя бы и только в той, где дроп)


1. Тут будут TX/TM блокировка, блокирующие DDL
2. Ага

А в общем хороший комментарий )
28 июн 12, 16:00    [12789593]     Ответить | Цитировать Сообщить модератору
 Re: select + ddl  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54383
orawish
select11
2 сессии. В одной делается select * from T. В другой drop table T. Других запросов или DML к таблице T нет.

Я думаю, что drop table пройдет успешно. Эксперимент подтверждает это. Можно ли делать вывод, что select на локальной базе ни при каких условиях не будет блокировать DDL на таблицу?

ну отчего же ни при каких условиях?
1) for update
2) не умрет gtt непустая (в любой сессии, хотя бы и только в той, где дроп)
интересно увидеть непустую gtt всего лишь после селекта
:-)
28 июн 12, 16:05    [12789617]     Ответить | Цитировать Сообщить модератору
 Re: select + ddl  [new]
Vint
Member

Откуда: Москва
Сообщений: 4564
andreymx,
смотри:
create or replace function pipelined_function
...........
pragma autonomus_transaction;
.............
insert into temp_table.......
commit;
...........


select * from table(pipelined_function(.....))
28 июн 12, 16:45    [12789877]     Ответить | Цитировать Сообщить модератору
 Re: select + ddl  [new]
Vint
Member

Откуда: Москва
Сообщений: 4564
andreymx,
упс... затупил насчет gtt
28 июн 12, 16:46    [12789882]     Ответить | Цитировать Сообщить модератору
 Re: select + ddl  [new]
ten
Member

Откуда: Екатеринбург
Сообщений: 1672
Vint,
Ну почему-же, есть ведь и preserve rows :)
29 июн 12, 08:11    [12792113]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить