Oracle mechanics

22.02.2018

Доклад Александра Токарева о Result Cache на семинаре RuOUG

Filed under: Oracle — Игорь Усольцев @ 01:05
Tags: ,

— живой и интересный!

Несколько иллюстраций к рассказанному Александром:

Список используемых/наблюдаемых в системе опций подсказки RESULT_CACHE:

SQL> SELECT distinct REGEXP_SUBSTR(upper(sql_text), 'RESULT_CACHE([[:space:]]*)\([^)\[]+\)') as RC_HINT_PARAMS
     FROM v$sqlarea where REGEXP_LIKE(upper(sql_text), 'RESULT_CACHE([[:space:]]*)\([^)\[]+\)');
 
RC_HINT_PARAMS
--------------------------------------------------------------------------------
RESULT_CACHE (SYSOBJ=TRUE)
RESULT_CACHE (SYSOBJ=FALSE)
RESULT_CACHE(SNAPSHOT=3600)
RESULT_CACHE (SYSOBJ=TRUE SHELFLIFE=30)

Franck Pachot. RESULT_CACHE hint expiration options — тесты недокументированных опций:
SNAPSHOT — гарантированное /независимое от DML/ время хранения/валидности Result Cache
SHELFLIFE — гарантированное время инвалидации кэша в секундах, логично применяемое для кэширования системных объектов с опцией SYSOBJ=TRUE

Troubleshooting Latch Free (Result Cache: RC Latch) Issues When The Result Cache is Full (Doc ID 2143739.1):

Please be advised that prior to 12.2 the query on v$result_cache_objects itself acquires a share-latch on the Result Cache and thus ideally should be run when the load on Result Cache has dropped (perhaps the application can be quiesced for the duration of the query).
The actual application does not have to be actively running at the time of the diagnostic query to accurately identify the functions/queries that should not be cached.

Starting with 12.2 which includes the fix for Bug 17305006, the code for v$result_cache_objects has been made latch-free so querying this view will not require putting the RC in bypass mode.

Bug 17305006 : SEVERE PERFORMANCE SLOWDOWN WHEN RESULTS CACHE IS THRASHING:

This fix adds the following functionality:

I. BLACK LIST
=========

Since the duration of the BL is the lifetime of the instance, we have additionally introduced the following new (hidden/underscore) parameter to directly populate the BL on instance startup:

_result_cache_black_list=(bgpnndk3yg7taaxktu21padr44,bgpnndk3yg7taaxktu21padr45)

II. LATCH FREE READS
===============

The code for v$result_cache_objects has been made latch-free.

A new «hidden» parameter was introduced to control the scope of latch-free reads:

_result_cache_latch_free_reads = {ADMIN, ALWAYS, NEVER}

The default value is ADMIN. Today ALWAYS and ADMIN are equivalent, but in the future ALWAYS will also include latch-free client reads and thus become a superset of ADMIN. Finally, note that today ADMIN only covers v$result_cache_objects view, but this will should be expanded to cover other RC v$ views as well (e.g. dbms_result_cache.memory_report() function).

Реклама

Добавить комментарий »

Комментариев нет.

RSS feed for comments on this post. TrackBack URI

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s

Блог на WordPress.com.

%d такие блоггеры, как: