Oracle - Bloqueo de tablas en ORACLE

 
Vista:

Bloqueo de tablas en ORACLE

Publicado por Slurmmm (20 intervenciones) el 09/01/2002 14:10:23
Hola,

Para bloquear tablas en ORACLE se hace:

LOCK TABLE nombre_tabla IN EXCLUSIVE MODE (por ejemplo),

Pero para desbloquearlas, ¿existe alguna sentencia SQL que lo haga, o simplemente tras hacer un COMMIT o ROLLBACK ya se desbloquean.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Bloqueo de tablas en ORACLE

Publicado por DACH (258 intervenciones) el 09/01/2002 17:07:51
Luego de la instruccion consecutiva al LOCK (es decir, al finalizar) se desbloquea automaticamente la tabla o vista en cuestión.

Salu2.-

[email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Bloqueo de tablas en ORACLE

Publicado por Harold (697 intervenciones) el 09/01/2002 18:28:24
Cuando corres alguna instruccion (insert, update, delete) el registro se encuentra bloqueado hasta que sea liberado, lo cual sucede cuando se da commit ya sea implicio o explicito. Cuando el registro se encuentra bloqueado lo que hace la base de datos es que utiliza los segmentos de rollback para que los datos sean accesados de modo lectura unicamente. Lo mismo sucede cuando bloqueas un registro en forma manual, pero tienes que controlar de la misma manera la liberacion del recurso, es mejor dejar ese trabajo a la base de datos.

Saludes

Harold
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Bloqueo de transacción

Publicado por slurmmm (20 intervenciones) el 09/01/2002 23:04:40
Hola y gracias por responder,

Entonces me quieres decir que despues de ejecutar la siguiente instrucción SQL queda desbloqueada la tabla ¿no?; no obstante, en el caso de que yo quiera mantener unas tablas bloqueadas durante más tiempo, es decir, quiero que se mantengan bloqueadas mientras se ejecuta un proceso transaccional que necesita que durante todo el rato estén bloqueadas las tablas...¿Cómo lo puedo hacer?

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Bloqueo de transacción

Publicado por Harold (697 intervenciones) el 10/01/2002 18:13:00
Entonces tienes que hacerlo manual

alter table tablename lock

el problema que tendras con esto es que el objeto estara bloqueado esto generara mucha contencion sobre el objeto, es decir, si tienes una base de datos con muchos usuarios el performance de la base de datos se degradara mucho sobre todo si la transaccion dura mucho tiempo o toca muchos objetos. En ese caso tienes que optimizar bien las consultas que se correran en ese momento para que se ejecuten en el menor tiempo posible. Tambien tienes que definir segmentos de rollback lo suficientemente grandes en el caso que la transaccion tome muchos registros.

Saludes

Harold
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar