Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Вот ведь что придумале...  [new]
индусятки
Guest
Note:6688108.8
27 ноя 08, 14:44    [6495227]     Ответить | Цитировать Сообщить модератору
 Re: Вот ведь что придумале...  [new]
Alexander Konakov
Member

Откуда:
Сообщений: 1027
индусятки,

можно было бы и ссылкой дать...
27 ноя 08, 14:54    [6495301]     Ответить | Цитировать Сообщить модератору
 Re: Вот ведь что придумале...  [new]
Alexander Konakov
Member

Откуда:
Сообщений: 1027
Почитал. Хехе... прям WHEN OTHERS THEN NULL какой-то :)
27 ноя 08, 14:58    [6495330]     Ответить | Цитировать Сообщить модератору
 Re: Вот ведь что придумале...  [new]
Legi
Member

Откуда:
Сообщений: 1005
а у кого нет металинка как быть? :)

в кратце опишите в чём суть мысли индусов плизз
27 ноя 08, 15:02    [6495349]     Ответить | Цитировать Сообщить модератору
 Re: Вот ведь что придумале...  [new]
Alexander Konakov
Member

Откуда:
Сообщений: 1027
Legi,

Special SCN_ASCENDING hint to be supplied in the SQL statement. With this hint the select will take a new snapshot SCN and continue the scan rather than reporting an ORA-1555 to the caller. Со всеми вытекающими :)
27 ноя 08, 15:34    [6495576]     Ответить | Цитировать Сообщить модератору
 Re: Вот ведь что придумале...  [new]
hell
Member

Откуда:
Сообщений: 3001
Alexander Konakov
Legi,

Special SCN_ASCENDING hint to be supplied in the SQL statement. With this hint the select will take a new snapshot SCN and continue the scan rather than reporting an ORA-1555 to the caller. Со всеми вытекающими :)


READ UNCOMMITED наконец реализовали?
28 ноя 08, 10:58    [6498785]     Ответить | Цитировать Сообщить модератору
 Re: Вот ведь что придумале...  [new]
joppa
Guest
это начало конца?
28 ноя 08, 12:25    [6499547]     Ответить | Цитировать Сообщить модератору
 Re: Вот ведь что придумале...  [new]
Полночный
Member

Откуда:
Сообщений: 312
hell
READ UNCOMMITED наконец реализовали?

Да нет, это не read uncommited. Читаться будут как раз только commited, но на разные моменты времени. Результат, правда, одинаковый: что так, что эдак - баланс не сойдется :)
Кстати, строку SCN_ASCENDING Дон наш любимый Бурлесон находил еще в бинарнике 9.0.2, так шта... Любители поискать себе приключений могут попробовать :)
Меня больше интересует, что имелось в виду в баге 6688108: то ли один идиот написал, а второй зарегистрировал, то ли ORA-01555 вылетало без оснований, вот тогда ой... А похоже именно на это.
28 ноя 08, 12:55    [6499765]     Ответить | Цитировать Сообщить модератору
 Re: Вот ведь что придумале...  [new]
Timm
Member

Откуда: Moscow, Ё-burg
Сообщений: 3696
Полночный
Кстати, строку SCN_ASCENDING Дон наш любимый Бурлесон находил еще в бинарнике 9.0.2, так шта... Любители поискать себе приключений могут попробовать :)

На 10.2.0.4 работает.
+

-- setup
conn sys/sys as sysdba
create undo tablespace undotbs2 datafile 'd:\oracle\oradata\test\undotbs2_01.dbf' size 16m reuse autoextend off;
alter system set undo_retention=30;
alter system set undo_tablespace=undotbs2 scope=spfile;
shutdown immediate;
startup
-- test
drop table t1 cascade constraints purge;
create table t1(val, pad) as select rownum, cast('x' as char(2000)) from dual connect by level <= 1000;
begin dbms_lock.sleep(10); end; -- to WA ORA-01466: unable to read data - table definition has changed
/
var scn number
exec :scn := dbms_flashback.get_system_change_number;

declare
    procedure do_update(p_rowid rowid, p_val number) is
        pragma autonomous_transaction;
    begin
        update t1 set val = p_val where rowid = p_rowid;
        commit;
    end;
begin
    for i in 1 .. 100 loop
        for r in (select rowid, val from t1) loop
            do_update(r.rowid, r.val + 1);
        end loop;
    end loop;
end;
/

select count(*) from t1 as of scn :scn;
select /*+ scn_ascending */ count(*) from t1 as of scn :scn;
-- result
SQL> select count(*) from t1 as of scn :scn;
select count(*) from t1 as of scn :scn
                     *
ERROR at line 1:
ORA-01555: snapshot too old: rollback segment number 5362 with name "_SYSSMU5362$" too small


SQL> select /*+ scn_ascending */ count(*) from t1 as of scn :scn;

            COUNT(*)
--------------------
                1000

1 row selected.
11 дек 08, 16:38    [6557991]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить