Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 11.2 и result cache для systimestamp  [new]
Sergey L.
Member

Откуда: Kiev
Сообщений: 53
Работаем на 11.1, думаем про апгрейд на 11.2
Возникла следующая проблема с RESULT CACHE - кешируется вызов функции который не должен кешироваться (т.к. используется SYSTIMESTAMP).
Oracle 11.2.0.1.0
На металинке не нашел похожего. Плохо искал, или это уже фича?

ALTER SESSION SET nls_date_format='YYYY-MM-DD';
ALTER SESSION SET NLS_TIMESTAMP_FORMAT='YYYY-MM-DD HH24:MI:SS';
ALTER SESSION SET NLS_TIMESTAMP_TZ_FORMAT='YYYY-MM-DD HH24:MI:SS';
ALTER SESSION SET NLS_COMP='LINGUISTIC';
ALTER SESSION SET NLS_SORT='BINARY_CI';

CREATE FUNCTION NOW RETURN TIMESTAMP
IS
BEGIN
    RETURN SYSTIMESTAMP;
END;
/

select now from dual;
2011-05-06 11:46:35
select now from dual;
2011-05-06 11:46:40

ALTER SESSION SET result_cache_mode = FORCE;

select now from dual;
2011-05-06 11:49:51
select now from dual;  -- все тот же результат
2011-05-06 11:49:51
select systimestamp, now from dual;   -- вот тут нормально
2011-05-06 11:50:31 2011-05-06 11:50:31
select now from dual;  -- а тут опять закешированное
2011-05-06 11:49:51;
6 май 11, 19:01    [10619177]     Ответить | Цитировать Сообщить модератору
 Re: 11.2 и result cache для systimestamp  [new]
--Попрошайка--
Member

Откуда: АО "Попрошайка".
Сообщений: 13709
Блог
От людей что хочешь то?
6 май 11, 23:37    [10619878]     Ответить | Цитировать Сообщить модератору
 Re: 11.2 и result cache для systimestamp  [new]
_Nikotin
Member

Откуда: СПб
Сообщений: 2965
Посмотри баги с result_cache - либо исправлено в 11.2.0.2, либо workaround /*+ NO_RESULT_CACHE */
7 май 11, 00:08    [10619976]     Ответить | Цитировать Сообщить модератору
 Re: 11.2 и result cache для systimestamp  [new]
xtender
Member

Откуда: Мск
Сообщений: 5704
Sergey L., странное вы что-то делаете... ну делайте раз не надо кешировать это:
select/*+ NO_RESULT_CACHE */ now from dual;
7 май 11, 00:17    [10619997]     Ответить | Цитировать Сообщить модератору
 Re: 11.2 и result cache для systimestamp  [new]
xtender
Member

Откуда: Мск
Сообщений: 5704
xtender в след раз будет читать до конца :)
7 май 11, 00:20    [10620006]     Ответить | Цитировать Сообщить модератору
 Re: 11.2 и result cache для systimestamp  [new]
Sergey L.
Member

Откуда: Kiev
Сообщений: 53
xtender
Sergey L., странное вы что-то делаете... ну делайте раз не надо кешировать это:
select/*+ NO_RESULT_CACHE */ now from dual;


Логично. Но вся проблема в том, что эта ф-ция now() - лишь один из костылей для поддержки кодом базы Oracle в дополнение к MySQL. Данный запрос - это минимальный тест-кейс повторения бага. Поменять все запросы использующие now() довользо проблематично.

Нашел похожий баг: 9661998: FUNCTION WITH PRAGMA AUTONOMOUS_TRANSACTION NOT INVALIDATING RESULT CACHE
решения нет. Похоже придется выключить этот result cache.
10 май 11, 13:19    [10628787]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить