Utilizando WITH NOLOCK para melhorar a performance de consultas com SQL

0

SQL Server utiliza mecanismos de bloqueio (LOCK) para garantir a integridade de dados. O fato é que muitas vezes o bloqueio (LOCK) impacta diretamente na performance do sistema. Por exemplo, veja os dois comandos:

SELECT COUNT(Nome) FROM Pessoas

INSERT Pessoas (Nome) VALUES ('Jhonathan')`

Se forem executados simultaneamente, os comandos efetuarão leitura (SELECT) e escrita (INSERT) contra a mesma tabela. Entretanto, o banco de dados garante a integridade e executa um comando por vez. Em outras palavras, o comando de SELECT não pode ocorrer no mesmo instante que o INSERT. Esse é um caso simples e inofensivo, mas pense agora nos sistemas de grande porte.

Solução: Uso de NOLOCK

O comando SELECT permite o uso de uma opção denominada NOLOCK, evitando assim os bloqueios com os comandos de INSERT. O uso é simples, bastando adicionar algumas palavras após a declaração da tabela.

    SELECT COUNT(Nome) FROM Pessoas WITH (NOLOCK)

Dessa forma, o comando WITH (NOLOCK) indica que não será necessário bloquear a tabela durante a leitura dos dados.

Bacana, não é mesmo?

Um abraço a todos e bom carnaval ( séries + comida + freelas ) 😛

 

 

Compartilhe.

Sobre o autor

Criador do blog Código Simples e com mais 9 anos de experiência em TI, com títulos de MVP Microsoft na área de Visual Studio Development, Neo4j Top 50 Certificate, Scrum Master e MongoDB Evangelist. Atuando em funções analista, desenvolvedor, arquiteto, líder técnico e gestor de equipes. Mais informações em : http://jhonathansoares.com