Параметры инициализации, влияющие на работу механизма IMU

dbstalker, 15 июня

Вот в этом посте описывался приблизительный алгоритм работы IMU механизма. А в этом посте некоторые замечания по поводу работы этого механизма. А теперь приведу перечень параметров так или иначе влияющих IMU.

Замечание: перед тем как менять значения приведенных ниже параметров, нужно очень хорошо подумать о последствиях!

Итак, следующие параметры используются для управления IMU или влияют на этот механизм.

processes Устанавливает максимальное количество оракловских соединений. Чем больше это значение, тем больше количество IMU защелок. Как утверждает автор статьи All About Oracle’s In-Memory Undo приблизительно на 8.25 процессов выделяется одна IMU защелка. Например, 800 процессов – 97 защелок, 200 процессов – 24 защелки. Если вам вздумается менять этот параметр, то вспомните, что он влияет еще на много других вещей в вашей базе! По-моему этот автор ошибается, количество пулов (а значит и защелок на них) по умолчанию равно 10% от значения параметра инициализации TRANSACTIONS. Вам остается только проверить, какое утверждение является верным.

_in_memory_undo Если нужно отключить механизм IMU, то параметр устанавливается в FALSE. По умолчанию - TRUE. Однако даже при _in_memory_undo=TRUE есть два исключения, при которых механизм IMU не работает:

  • если "turning supplemental logging on disables IMU" (Note:428167.1).
  • для RAC

_imu_pools Параметром устанавливается первоначальное количество IMU пулов. Обычно по умолчанию -3.

_recursive_imu_transactions Этим параметром устанавливается IMU механизм для рекурсивных ( иерархических ) запросов. По умолчанию – FALSE.

_db_writer_flush_imu Дает возможность ораклу большую свободу для искусственного увеличения автоматического управления кешем. Чтобы это означало? Работа процесса DBWR вызывает сброс IMU пулов? Как для меня, то вопрос открыт. По умолчанию - TRUE.

compatibility должен быть больше или равно 10.0.

undo_management должен быть установлен в AUTO (автоматическое управление undo)

cluster_database должен быть FALSE. Это связано с тем, что RAC не поддерживает IMU (пока что).

Несколько полезных запросов

select ADDR,KTIFPNO, KTIFPSTA, KTIFPXCB xctaddr,
to_number(KTIFPUPE, 'XXXXXXXXXXXXXXXX')-
to_number(KTIFPUPB, 'XXXXXXXXXXXXXXXX') ubsize,
(to_number(KTIFPUPB, 'XXXXXXXXXXXXXXXX')-
to_number(KTIFPUPC, 'XXXXXXXXXXXXXXXX'))*-1 ubusage,
to_number(KTIFPRPE, 'XXXXXXXXXXXXXXXX')-
to_number(KTIFPRPB, 'XXXXXXXXXXXXXXXX') rbsize,
(to_number(KTIFPRPB, 'XXXXXXXXXXXXXXXX')-
to_number(KTIFPRPC, 'XXXXXXXXXXXXXXXX'))*-1 rbusage,
KTIFPPSI,KTIFPRBS,KTIFPTCN
from x$ktifp
where KTIFPXCB != hextoraw('00')

select * from v$sgastat where name like '%KTI%';
select * from v$sysstat where name like '%IMU%'

create table t as select * from all_objects;
update t set owner = 'X' where rownum = 1;
update t set owner = 'X' where rownum <= 200;

select n.name, s.value from v$statname n, v$sesstat s
where n.statistic# = s.statistic#
and s.sid = (select sid from v$mystat where rownum = 1)
and n.name in ('IMU Flushes','IMU commits');

Источники (и тем не менее информации очень мало):

http://www.teamycc.com/RMOUG_2008_Conference/PDF/Haisley.pdf
http://www.tanelpoder.com/files/Oracle_Performance_Scalability_10g_11g.pdf
http://www.freelists.org/post/oracle-l/how-to-figure-out-how-much-redo-sql-statements-are-generating
http://www.freelists.org/post/oracle-l/First-17-updated-records-disappeared-from-REDOLOG-files,2
http://blog.aristadba.com/?p=17#comments

Тэги: SGA, UNDO

ОднаКнопка

 

Новый комментарий

Я не спамер: введите суму 9+7



 

От авторов блога

О Блоге - прочитай перед началом.

Задать вопрос и получить ответ - уже решено 94 вопросов

Глоссарий - список терминов и сокращений


 
 

Бизнес форум