Mostrando postagens com marcador Locks em Banco de Dados. Mostrar todas as postagens
Mostrando postagens com marcador Locks em Banco de Dados. Mostrar todas as postagens

terça-feira, 18 de fevereiro de 2014

Locks em Banco de Dados

Primeiramente o que é um Lock?

A palavra já fala é travar.

Bom vamos falar um pouco mais o que envolve esse travamento em um banco de dados.

Em vários DataBases quando executamos alguma operação DML (update, insert, delete) nós estamos lockando os dados para a edição, isto impede que as aplicações e/ou até mesmo usuários não realizarem alteração na mesma tabela/linha que você. Lembramos que existe o lock de tabela e o lock de linha.

O lock pode causar travamento da aplicação por qualquer usuário client que estiver realizando algum processo de DML sendo normal, porém se outro dado foi relacionado juntamente a mesma tabela e a mesma linha onde foi disponibilizado um lock ele pode gerar uma parada sem resposta do update, insert, delete e etc levando o travamento da aplicação e prejudicando todo o ambiente da execução.

Vários bancos tem como critério em utilizar alguns mecanismo para bloquear a alteração de um mesmo dado, originada por diversas conexões. Quando é criada uma requisição de acesso a um determinado dado em um database, o banco deve garantir à essa requisição o acesso irrestrito (lock) ao dado, evitando a possibilidade de corrupção do dado ou um erro do sistema. Somente termina o evento locado em após realizar (Commit) ou um (Rollback).

Dentro de um lock existem 2 situações como: 

Shared Lock: Shared Locks são criados quando uma requisição de leitura é enviada a um objeto. Múltiplos Shareds Locks podem ser emitidos a um mesmo objeto, permitindo que mais de um processo possa ler o dado.

Exclusive Lock: irá “Lockar” o objeto, para que ele possa ser modificado, e irá bloquear todas as demais requisições ao mesmo objeto, seja de leitura ou modificação.

Lembrando novamente que um lock é normal onde sempre existirá para garantir o dado coerente no banco, os locks de travamento são relacionando a lentidão em banco ou até mesmo aplicação que esteja gerando o lock devido uma falha de gerenciamento do banco simultâneo sem sucesso.

Locks podem ocorrer a nível de linhas, páginas de dados e tabelas.

Também existem outros meio de travamento como Blocks e Deadlocks, onde mais para frente irei postar algo relacionado a fundo nesse critério.
 Copyright © 2008-2010 All Right Reserved - Todos os Direitos Reservados Elder Stroparo