Tipos de Bloqueio do Oracle
I – Tipos de Bloqueio
Oracle Locks
Qual a necessidade?
Com o advento dos sistemas multi-usuários, um grande problema a ser resolvido é a questão da concorrência pela informação, isto é, a mesma informação pode ser acessada e até mesmo atualizada por vários usuários ao mesmo tempo. Para evitar a interação destrutiva entre essas transações, a grande maioria dos SGBDs disponíveis no mercado possuem algum mecanismo de lock (trava).
Como funciona o mecanismo de lock presente no Oracle?
O mecanismo de lock presente no Oracle é considerado um dos mais sofisticados e eficientes dentre os bancos de dados de grande porte. O controle é feito inteiramente no header (cabeçalho) do bloco onde o dado a ser locado reside. Essa estratégia evita mais um possível ponto de gargalo caso o banco de dados seja massivamente transacional e aumenta a escalabilidade do sistema como um todo.
O Oracle faz todo o gerencimento de locks utilizando duas categorias-level: Lock de linha e Lock de tabela.
Lock de linha
Um lock do tipo linha é aplicado individualmente às linhas de uma tabela. Quando uma linha está ““locada””, nenhuma outra sessão conseguirá alterá-la até que a transação que detém o lock chegue ao fim. Claro que se uma determinada linha de uma tabela estiver ““locada”” por uma determinada transação, outros processos poderão sem problema algum alterar as outras linhas dessa tabela que ainda não estejam ““locada”s”.
Lock de tabela
Esse tipo de lock é aplicado no nivel tabela e pode ser utilizado para obter uma imagem consistente da tabela e para assegurar que sua definição não mude enquanto transações ativas ainda existirem nela.
Tipos de Locks
No Oracle, os seguintes tipos de locks são possíveis:
Tipo
Level
Row Share (RS)
Tabela
Row Excluive (RX)
Tabela
Share (S)
Tabela
Share Row Exclusive (SSX)
Tabela
Share Row Exclusive (SRX)
Tabela
Exclusive (X)
Tabela/Linha
Abaixo segue uma explicação de cada um deles:
Row Share (RS)