|
|
Publicado emOntem às 20:48
|
|
|

Requisitos: Alguns dados permitem leituras sujas, como conteúdo de artigos, visualizações de página, comentários, etc., o que não é tão rigoroso quanto dados financeiros. Para melhorar o desempenho da consulta, transações ReadUncommitted podem ser usadas, mas SqlTransaction e TransactionScope apresentam bugs de nível de isolamento de vazamento que ainda não foram corrigidos, então considere usar a solução WITH (NOLOCK).
Revisar:
Níveis de isolamento de vazamento do SqlTransaction e do TransactionScope (esse bug existe há 8 anos e ainda não foi corrigido!) Estimo que muitas pessoas possam ser afetadas, mas podem não perceber):O login do hiperlink está visível.
Este artigo precisa referenciar o SqlScriptDOM para analisar instruções SQL e adicionar WITH(NOLOCK). Consulte o projeto open-source:O login do hiperlink está visível.
Citações Nuget da seguinte forma:
Crie um novo recurso AllowDirtyReadAttribute.cs, programe da seguinte forma:
Crie um novo WithNoLockInterceptor para sobrescrever certos métodos no DbCommandInterceptor. O código é o seguinte:
Injete no EF Core com a seguinte configuração:
Use para adicionar acima do método controlador[PermitirLeitura Suja]Poder.
Instrução SQL bruta:
SELECT [o]. [Id], [o]. [NomeCliente], [o0]. [Id], [o0]. [OrderId], [o0]. [Produto] DE [Ordens] COMO [o] JUNÇÃO EXTERNA ESQUERDA [Linhas de Ordem] COMO [o0] ON [o]. [Id] = [o0]. [OrderId] ONDE [o]. [ID] = 1 ORDEM POR [o]. [Id]; Instrução gerada após adicionar NOLOCK:
SELECT [o]. [Id], [o]. [NomeCliente], [o0]. [Id], [o0]. [OrderId], [o0]. [Produto] DE [Ordens] COMO [O] COM (NOLOCK) JUNÇÃO EXTERNA ESQUERDA [Linhas de Ordem] COMO [OO] COM (NOLOCK) ON [o]. [Id] = [o0]. [OrderId] ONDE [o]. [ID] = 1 ORDEM POR [o]. [Id]; |
Anterior:(MSSQL) Busca de Texto Completo do SQL Server, Índice de Texto Completo
|