|
|
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:
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
|