Lic. Analisis De Sistemas
Monitoreo y Detección de Contention por Lock
• Alto nivel de concurrencia de datos
– Los locks por DML son a nivel de fila.
– Las consultas no producen locks.
• Oraclebrinda varios niveles de consistencia de datos.
• Las Transacciones mantienen los locks hasta que ocurre un commit o un rollback.
• La contención de Locks puede ocurrir debido a
– Niveles altosde locks innecesarios.
– Los usuarios no confirman los datos.
– Otros productos que imponen niveles de lock más altos.
DML Locks
• La transacción obtiene un lock compartido sobre latabla.
• La transacción obtiene locks exclusivos sobre las filas.
• El mecanismo de encolamiento puede registrar
– Cuales usuarios están esperando.
– El modo de lock que ellos quieren.– Para que usuarios se requirió el lock.
DDL Locks
• Exclusive DDL locks:
– No se puede obtener si el objeto tiene cualquier otro tipo de lock.(Ej.: CREATE, ALTER, DROP)
• Shared DDLlocks:
– Evitan que otro usuario alter o elimine el objeto referenciado (Ej.: GRANT, CREATE PACKAGE, etc.)
• Breakable parse locks:
– Controla si alguna sentencia de la library cache debeser invalidada debido a los cambios en los objetos.
Otros Locks
• Row Share (RS)
SELECT .... FOR UPDATE;
– Un lock compartido en la tabla
– Un lock exclusivo en las filasrequeridas.
• Share (S)
– Lock de tabla que evita cualquier DML.
– Usado para integridad referencial: las sentencias que implícitamente producen un Share Lock involucran a las constraints deintegridad referencial. Si no hay índice sobre la columna de la foreign key en la tabla de detalle:
– Cualquier DELETE en la tabla cabecera mantiene un Share Lock en la de detalle
– CualquierUPDATE en las columnas referenciadas en la cabecera mantiene un Share Lock en la de detalle.
– Para evitar este comportamiento, crear índices sobre las columnas de la foreign key en la tabla de...
Regístrate para leer el documento completo.