Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 27|Svar: 0

[Tips] WITH (NOLOCK)-optimering för EF Core-frågor med hög samtidighet

[Kopiera länk]
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:
Entity Framework Frågeoptimering WITH(NOLOCK)
https://www.itsvse.com/thread-9513-1-1.html

.NET/C# använder SqlScriptDOM för att tolka och exekvera SQL-satser
https://www.itsvse.com/thread-11222-1-1.html

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
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com