Pergunta

Existe uma maneira de fazer com (Nolock) ser aplicada em qualquer instrução SELECT executada em um banco de dados específico?

Foi útil?

Solução

Não, mas você pode usar o Isolamento instantâneo Nível do banco de dados no SQL Server 2005 e acima, deve ajudar muito com deadlocks

O SQL Server 2005 apresenta extensões nos níveis de isolamento SQL-92 com a introdução do nível de isolamento de instantâneos e uma implementação adicional de leitura comprometida. O novo nível de isolamento read_committ_snapshot pode substituir de forma transparente a leitura comprometida por todas as transações.

O isolamento do instantâneo especifica que os dados lidos em uma transação nunca refletirão as alterações feitas por outras transações simultâneas. A transação usa as versões da linha de dados que existem quando a transação começa. Nenhum bloqueio é colocado nos dados quando lidos, portanto, as transações instantâneas não bloqueiam outras transações dos dados de gravação. Transações que escrevem dados não bloqueiam as transações instantâneas dos dados de leitura. Você precisa ativar o isolamento do instantâneo definindo a opção Allow_Snapshot_isolation Database para usá -lo.

A opção Read_Committ_SNAPSHOT determina o comportamento do nível de isolamento comprometido com leitura padrão quando o isolamento do instantâneo é ativado em um banco de dados. Se você não especificar explicitamente read_Committ_Snapshot, a leitura comprometida será aplicada a todas as transações implícitas. Isso produz o mesmo comportamento que definir read_Committ_SNAPSHOT (o padrão). Quando read_Committ_Snapshot está em vigor, o mecanismo de banco de dados usa bloqueios compartilhados para impor o nível de isolamento padrão. Se você definir a opção Read_Committ_SNAPShot Database para ON, o mecanismo de banco de dados usará a versão em linha e o isolamento de instantâneos como padrão, em vez de usar bloqueios para proteger os dados.

Outras dicas

Depende do seu banco de dados. Alguns mecanismos de banco de dados permitem padrão para leituras sujas ou comportamentos semelhantes.

Por exemplo, algumas versões do MSSQL Server permitem configurar o banco de dados como isolamento de instantâneos, descrito na postagem do SQLMENACE.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top