Page 1 of 1

Wait event library cache: mutex X

Posted: Wed Jan 29, 2014 5:51 pm
by Róli
Olá,

A baixo, uma situação de wait event library cache: mutex X gerado constantemente. Na execução do SQL abaixo, não rodou o SQL, ficou com o evento fixo e sem finalizar a execução.

A consulta em questão, busca as 10 tabelas que precisam ficar em memória para ganhar performance:

SID EVENT SECONDS_IN_WAIT SQL_TEXT
---------- ---------------------------------------- --------------- ----------------------------------------------------------------------
1248 library cache: mutex X 1 select 'alter table '||obj||' storage (buffer_pool keep);',
1248 library cache: mutex X 1 'alter table '||obj||' cache;' FROM (select distinct exem, ct
1248 library cache: mutex X 1 yp, obj, gets, rowp from (select DECODE( s
1248 library cache: mutex X 1 .command_type , 2, 'Insert into '
1248 library cache: mutex X 1 , 3, 'Select from ' , 6,
1248 library cache: mutex X 1 'Update of ' , 7, 'Delete from '
1248 library cache: mutex X 1 , 26, 'Lock of ') ctyp , o.own
1248 library cache: mutex X 1 er || '.' || o.name obj , SUM(0 - s.execution
1248 library cache: mutex X 1 s) exem , SUM(s.buffer_gets)
1248 library cache: mutex X 1 gets , SUM(s.rows_processed) rowp
1248 library cache: mutex X 1 from v$sql s , v$obje
1248 library cache: mutex X 1 ct_dependency d , v$db_object_cache o
1248 library cache: mutex X 1 where s.command_type IN (2,3,6,7,26)
1248 library cache: mutex X 1 and d.from_address = s.address and d.to_owner
1248 library cache: mutex X 1 = o.owner and o.owner not like '%SYS%'
1248 library cache: mutex X 1 and d.to_name = o.name and o.type =
1248 library cache: mutex X 1 'TABLE' group by s.command_type, o.owner, o.name
1248 library cache: mutex X 1 order by 5 desc ) ) WHERE rownum <= 10

23 rows selected.


Mas a consulta fica com evento de library cache: mutex X por mais de 15 minutos e não executa.

O que poderia ser a causa desse evento?

Também verifiquei a library cache onde está com um grande número de invalidações(duas semana que o banco foi baixado) conforme a baixo.
Hit Reload
Entity Executions Hits Ratio Reloads Ratio Invalidations
-------------------- ------------ ------------ ----- -------- ------ -------------
SQL AREA 175,187,379 168,156,489 .96 297,107 .0017 523763
TABLE/PROCEDURE 46,905,305 46,698,472 1.00 84,200 .0018 2613
BODY 2,972,962 2,971,679 1.00 224 .0001 60
TRIGGER 1,677,029 1,672,833 1.00 2,963 .0018 134


Desde já, obrigada!

Re: Wait event library cache: mutex X

Posted: Fri Jan 31, 2014 11:45 am
by Róli
Depois de coleta estatísticas do dicionário de dados, o SQL passou a executar rapidamente :)

Re: Wait event library cache: mutex X

Posted: Mon Feb 24, 2014 6:15 am
by portilho
Uma das causas deste Wait Event é o Bug 9239863, mas ele foi corrigido já na 11.2.0.2.

Quando eu tenho este problema, eu sigo o método do Tanel Poder (que eu ainda não decorei, tenho que olhar a todo momento que procuro).

Aqui tem duas apresentações dele a respeito:
http://blog.tanelpoder.com/files/Oracle ... ooting.pdf
http://boundarybusters.com/Rich/RICH_DB ... ooting.pdf

E aqui o Blog dele, obrigatório:
http://blog.tanelpoder.com/?s=latchprof++latchprofx