Oracle
 sql >> Database >  >> RDS >> Oracle

Identificazione e risoluzione di Oracle ITL Deadlock

La migliore indicazione della pressione dell'ITL viene dalle visualizzazioni delle prestazioni:

select event, total_waits, time_waited, average_wait
 from v$system_event
 where event like 'enq: TX%'
 order by 2 desc;

mostra le attese della contesa TX e

select OBJECT_NAME, SUBOBJECT_NAME, TABLESPACE_NAME, 
       OBJECT_TYPE, STATISTIC_NAME, VALUE
  from v$segment_statistics 
  where statistic_name = 'ITL waits'
  and value > 0
  order by value desc;

mostra le tabelle e gli indici coinvolti.

(Come tutti i v$ visualizzazioni, i risultati risalgono al momento in cui l'istanza è stata avviata.)

Se questo mostra che hai davvero le attese ITL, allora i parametri INITRANS e PCTFREE sono le manopole principali da girare (ma INITRANS =100 mi suona piuttosto alto e questi costano spazio).

Se le attese ITL non sono un problema, è necessario esaminare il codice dell'applicazione.