A procedure SalvarContasPagar está com um tempo demorado de...
Assinale a alternativa que preenche corretamente a lacuna.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a A - WITH (NOLOCK).
Para entender essa questão, é importante conhecer o conceito de isolamento de transações em bancos de dados relacionais e as dicas (hints) que podem ser usadas para modificar o comportamento padrão do SQL Server em relação ao bloqueio de dados durante operações de leitura e escrita.
O SQL Server, como muitos sistemas de gerenciamento de banco de dados, utiliza mecanismos de bloqueio para manter a integridade dos dados quando múltiplos usuários ou processos estão interagindo com o banco simultaneamente. Por vezes, esses bloqueios podem levar a problemas de performance, pois eles impedem que outros processos acessem os dados bloqueados até que a transação atual seja concluída.
A dica WITH (NOLOCK) é usada em uma consulta SQL para instruir o banco de dados a não emitir bloqueios compartilhados e a não respeitar bloqueios exclusivos quando realiza operações de leitura. Isso significa que a consulta pode ler dados que ainda não foram confirmados (commited) e estão em meio a uma transação, o que é conhecido como leitura suja (dirty read). Embora isso possa levar a leituras de dados potencialmente inconsistentes, o uso dessa dica pode melhorar a performance ao reduzir o tempo de espera por bloqueios.
Assim, a utilização da cláusula WITH (NOLOCK) permite que a procedure SalvarContasPagar continue operando mesmo que outras transações estejam ocorrendo, sem ter que aguardar o término destas para acessar as tabelas necessárias, o que soluciona o problema de tempo demorado de comunicação apontado no enunciado da questão.
É importante ressaltar que o uso do WITH (NOLOCK) deve ser feito com cautela e em situações onde os benefícios de performance superam o risco de ler dados inconsistentes. Em ambientes onde a integridade dos dados é crítica, outras estratégias devem ser consideradas para melhorar o tempo de resposta das transações.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo