|
|
Publicerad påIgår klockan 20:48
|
|
|

Krav: Viss data möjliggör smutsig läsning, såsom artikelinnehåll, sidvisningar, kommentarer etc., vilket inte är lika rigorös som finansiell data. För att förbättra frågeprestandan kan ReadUncommitted-transaktioner användas, men SqlTransaction och TransactionScope har buggar på läckage-isoleringsnivå som ännu inte har åtgärdats, så överväg att använda WITH (NOLOCK)-lösningen.
Recension:
SqlTransaction- och TransactionScope-läckageisoleringsnivåer (denna bugg har funnits i 8 år och har fortfarande inte åtgärdats!) Jag uppskattar att många kan påverkas, men kanske inte inser det):Inloggningen med hyperlänken är synlig.
Den här artikeln behöver referera till SqlScriptDOM för att tolka SQL-satser och lägga till WITH(NOLOCK). Se till open source-projektet:Inloggningen med hyperlänken är synlig.
Nuget-citater är följande:
Skapa en ny AllowDirtyReadAttribute.cs funktion, kodad enligt följande:
Skapa en ny WithNoLockInterceptor för att åsidosätta vissa metoder i DbCommandInterceptor. Koden är som följer:
Injicera i EF Core med följande konfiguration:
Använd för att lägga till det ovanför kontrollmetoden[TillåterDirtyRead]Kan.
Rå SQL-sats:
VÄLJ [o]. [id], [o]. [KundNamn], [o0]. [id], [o0]. [OrderId], [o0]. [Produkt] FRÅN [Orders] AS [o] VÄNSTER YTTRE SKARV [OrderLines] AS [o0] PÅ [o]. [id] = [o0]. [OrderId] DÄR [o]. [id] = 1 ORDER EFTER [o]. [Id]; Sats genererad efter att NOLOCK lagts till:
VÄLJ [o]. [id], [o]. [KundNamn], [o0]. [id], [o0]. [OrderId], [o0]. [Produkt] FRÅN [Orders] AS [o] WITH (NOLOCK) VÄNSTER YTTRE SKARV [OrderLines] SOM [O0] MED (NOLOCK) PÅ [o]. [id] = [o0]. [OrderId] DÄR [o]. [id] = 1 ORDER EFTER [o]. [Id]; |
Föregående:(MSSQL) SQL Server fulltextsökning, fulltextindex
|