Entendendo lock de registro no Oracle e SQL

Quando se reporta lentidão ou travamento de sistema, uma situação muito comum encontrada é o lock de registro. Essa situação ocorre quando um usuário executa uma rotina no sistema e,  como o ambiente em que está operando encontra-se muito lento, essa rotina demora demasiadamente para ser realizada.

 

Em um cenário de funcionamento normal, uma rotina de sistema acessa tabelas e registros rapidamente e os outros usuários acessam esse mesmo registro sem problemas, por conta da rapidez e do não “congestionamento” dos dados.

 

Porém se estiver com algum tipo de lentidão e diversos usuários começarem a acessar simultaneamente, esses registros do sistema estarão no que chamamos de lock, isto, é, a tela do usuário ficará congelada e o relatório demorará para iniciar a impressão.

 

Para o usuário final não será possível perceber mas o que está acontecendo é que uma outra rotina de outra pessoa acessando o sistema está travando as atividades. Isso acabará gerando uma série de solicitações para o time de tecnologia com reclamações de lentidão, travamento e dúvidas como “às vezes o sistema é rápido, às vezes é lento”. Essa falta de acuracidade de informação acabará por tornar inviável para a área de TI resolver os problemas apontados.

 

Pela experiência de mercado e de atuação dos profissionais da InfraDB, esse tipo de ocorrência ocorre muito mais em ambientes com banco de dados SQL Server  do que em ambientes com banco de dados Oracle.  Nossos especialistas explicam que isso ocorre porque ambos produtos  tratam de forma diferente os locks de dados.

No SQL Server o banco de dados cria páginas internas para poder “dividir” a informação de forma que ele não tenha que tratar toda a tabela sempre que a aplicação precisar apenas de uma parte dela. Porém, por se tratar de uma página do banco de dados, ela pode conter informações de mais de um registro, aumentando a possibilidade de locks, já que usuários que estão acessando registros diferentes. Imagine que você tem várias portas fechadas para escolher e salas muito pequenas, ao abrir a porta, você pode escolher uma que já está lotada e não caber mais pessoas dentro. Pois é isso que acontece com o banco de dados: alguns registros já estão sobrecarregados e, quando o usuário vai usar, já tem alguém na sala, ou seja, esse registro já está em lock.

 

Já no banco de dados Oracle o lock é feito por linha de tabela e isso diminui muito a possibilidade de um usuário ter que usar o mesmo registro que outro ao mesmo tempo. É como se fosse uma fila onde você consegue ver o tamanho e quem está nela então a possibilidade de você ter incidência é menor do que no caso das salas com portas fechadas.

 

A InfraDB hoje atende empresas de diversos portes que buscam otimizar e reduzir seus custos com tecnologia. O time de profissionais da empresa sabe como identificar problemas de lock, qual rotina e conexão esta gerando esse processo. No caso de uma cadeia de lock, o time de profissionais consegue mapear quem gerou e quem está esperando para poder acessar o registro.

 

David Severo, presidente da InfraDB comenta que problemas com lock ocorrem, muitas vezes, por falta de manutenção no banco de dados. Com monitoramento e cuidado adequado, as rotinas de sistema são executadas mais rapidamente diminuindo as chances de outros usuários precisarem daquele registro/página no mesmo momento em que um usuário esteja usando também.