Bloqueio dinâmico

Usar bloqueios de nível baixo, como bloqueios de linha, aumenta a simultaneidade diminuindo a probabilidade de duas transações solicitarem bloqueios, da mesma parte dos dados, ao mesmo tempo. Bloqueios de nível baixo também aumentam o número de bloqueios e os recursos necessários para administrá-los. Usar tabela de nível alto ou bloqueios de página diminui a sobrecarga, porém causando diminuição da simultaneidade.

Diagrama que mostra custo versus granularidade

O MicrosoftMecanismo de Banco de Dados do SQL Server usa uma estratégia de bloqueio dinâmico para determinar os bloqueios mais eficazes. O Mecanismo de Banco de Dados determina automaticamente quais os bloqueios mais apropriados quando a consulta é executada, com base nas características do esquema e da consulta. Por exemplo, para reduzir a sobrecarga de bloqueios, o otimizador pode escolher bloqueios no nível de página em um índice, ao executar uma verificação do índice.

O bloqueio dinâmico tem as seguintes vantagens:

  • Administração de banco de dados simplificada. Os administradores do banco de dados não precisam ajustar os limites de escalonamento de bloqueio.

  • Desempenho superior. O Mecanismo de Banco de Dados minimiza a sobrecarga do sistema usando bloqueios adequados à tarefa.

  • Os desenvolvedores de aplicativos podem se concentrar no desenvolvimento. O Mecanismo de Banco de Dados ajusta o bloqueio automaticamente.

No SQL Server 2008, o comportamento do escalonamento de bloqueio mudou com a apresentação da opção LOCK_ESCALATION. Para obter mais informações, consulte a opção LOCK_ESCALATION de ALTER TABLE.