Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 27|Antwoord: 0

[Tips] MET (NOLOCK) optimalisatie voor EF Core-queries met hoge gelijktijdigheid

[Link kopiëren]
Geplaatst opGisteren om 20:48 | | |
Vereisten: Sommige gegevens maken onbetrouwbare leesmogelijkheden mogelijk, zoals artikelinhoud, paginaweergaven, opmerkingen, enzovoort, wat niet zo rigoureus is als financiële gegevens. Om de queryprestaties te verbeteren, kunnen ReadUncommitted transacties worden gebruikt, maar SqlTransaction en TransactionScope hebben bugs op het niveau van lekken die nog niet zijn opgelost, dus overweeg de WITH (NOLOCK)-oplossing.

Recensie:
Entity Framework Query-optimalisatie WITH(NOLOCK)
https://www.itsvse.com/thread-9513-1-1.html

.NET/C# gebruikt SqlScriptDOM om SQL-statements te parsen en uit te voeren
https://www.itsvse.com/thread-11222-1-1.html

SqlTransaction- en TransactionScope-lekisolatieniveaus (deze bug bestaat al 8 jaar en is nog steeds niet opgelost!) Ik schat dat veel mensen er misschien door worden getroffen, maar het misschien niet beseffen):De hyperlink-login is zichtbaar.

Dit artikel moet verwijzen naar de SqlScriptDOM om SQL-statements te parsen en WITH(NOLOCK) toe te voegen. Zie het open-source project:De hyperlink-login is zichtbaar.

Nuget citaten als volgt:
Maak een nieuwe AllowDirtyReadAttribute.cs functie, code als volgt:
Maak een nieuwe WithNoLockInterceptor aan om bepaalde methoden in DbCommandInterceptor te overrulen. De code is als volgt:
Injecteer in EF Core met de volgende configuratie:
Gebruik het om het boven de controllermethode toe te voegen[ToestaanVuilLezen]Kunnen.

Ruwe SQL-instructie:
SELECTEER [o]. [Id],
         [o]. [Klantnaam],
         [o0]. [Id],
         [o0]. [OrderId],
         [o0]. [Product]
VAN [Orders] AS [o]
             LINKER BUITENSTE VERBINDING
         [OrderLines] AS [o0]
         OP [o]. [Id] = [o0]. [OrderId]
WAAR [o]. [Id] = 1
BESTELLING DOOR [o]. [Id];

Stelling gegenereerd na toevoeging van NOLOCK:
SELECTEER [o]. [Id],
         [o]. [Klantnaam],
         [o0]. [Id],
         [o0]. [OrderId],
         [o0]. [Product]
VAN [Bevelen] AS [o] MET (NOLOCK)
         LINKER BUITENSTE VERBINDING
         [OrderLines] ALS [o0] MET (NOLOCK)
         OP [o]. [Id] = [o0]. [OrderId]
WAAR [o]. [Id] = 1
BESTELLING DOOR [o]. [Id];




Vorig:(MSSQL) SQL Server full-text search, full-text index
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com