Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / orw_rowscn is null - нормально? / 7 сообщений из 7, страница 1 из 1
19.06.2017, 14:19
    #39474137
ora_rowscn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
orw_rowscn is null - нормально?
Привет. Это нормальное поведение? В смысле где-нибудь описано?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Connected to Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 

SQL> create table dropme(id integer) rowdependencies;
Table created
SQL> insert into dropme values (1);
1 row inserted
SQL> commit;
Commit complete
SQL> select id, ora_rowscn from dropme for update;
                                     ID ORA_ROWSCN
--------------------------------------- ----------
                                      1 3901451194
SQL> /
                                     ID ORA_ROWSCN
--------------------------------------- ----------
                                      1           
...
Рейтинг: 0 / 0
19.06.2017, 14:37
    #39474152
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
orw_rowscn is null - нормально?
ora_rowscnЭто нормальное поведение?Это логично. Scn, который будет у строки, неизвестен до коммита.
...
Рейтинг: 0 / 0
19.06.2017, 15:56
    #39474209
Read commited
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
orw_rowscn is null - нормально?
Elicora_rowscnЭто нормальное поведение?Это логично. Scn, который будет у строки, неизвестен до коммита.
Ну ладно хоть эта логика проявляется на втором запросе, а не, скажем, десятом или пятнадцатом.
...
Рейтинг: 0 / 0
19.06.2017, 16:51
    #39474283
dbms_photoshop
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
orw_rowscn is null - нормально?
Read commitedElicпропущено...
Это логично. Scn, который будет у строки, неизвестен до коммита.
Ну ладно хоть эта логика проявляется на втором запросе, а не, скажем, десятом или пятнадцатом.Для select for update берется текущая версия блока.
После того как он выполнен, состояние текущей версии отличается от того, что было до него как минимум в том,
что уже проставлен признак блокировки (lck) идентификатор транзакции (xid) для интересующей строки,
изменен scn (как оно выглядит с rowdependencies надо делать dump), chkval etc.
Если интересует углубиться дальше - 15384061 .
...
Рейтинг: 0 / 0
20.06.2017, 09:21
    #39474587
ora_rowscn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
orw_rowscn is null - нормально?
dbms_photoshopизменен scn
А на коммите откатывает его взад?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SQL> select id, ora_rowscn from dropme for update;
                                     ID ORA_ROWSCN
--------------------------------------- ----------
                                      1 3901928116
SQL> commit;
Commit complete
SQL> select id, ora_rowscn from dropme for update;
                                     ID ORA_ROWSCN
--------------------------------------- ----------
                                      1 3901928116


Read commitedНу ладно хоть эта логика проявляется на втором запросе, а не, скажем, десятом или пятнадцатом.

Какая разница - на втором или пятом? Если ты пишешь PL/SQL процедуру, следует ожидать что она в стеке вызовов может оказаться не на верхнем уровне, а транзакция может быть начата до ее вызова. Посему, в общем, все равно - на втором, пятом или рандомно.

Резюме.
Судя по всему, таки не баг, либо багофича вроде того, как for update сбрасывает резалткэш, котороая то нотэбаг, то таки баг, то нотэбаг взад.
Всем спасибо за участие.
...
Рейтинг: 0 / 0
20.06.2017, 13:26
    #39474730
dbms_photoshop
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
orw_rowscn is null - нормально?
ora_rowscnfor update сбрасывает резалткэшЯ там по ссылке делал предположение, что result cache смотрит на chkval.
При роллбек текущей версией блока становится та, которая была до select for update, соответсвенно chkval становится прежним и result cache снова валидный.
Аналогичная ситуация с scn.
...
Рейтинг: 0 / 0
20.06.2017, 13:31
    #39474732
Read commited
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
orw_rowscn is null - нормально?
ora_rowscnКакая разница - на втором или пятом? Если ты пишешь PL/SQL процедуру, следует ожидать что она в стеке вызовов может оказаться не на верхнем уровне, а транзакция может быть начата до ее вызова. Посему, в общем, все равно - на втором, пятом или рандомно.
Ты не понял меня.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / orw_rowscn is null - нормально? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]