Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 27|Atbildi: 0

[Padomi] AR (NOLOCK) optimizācija EF Core vaicājumiem ar augstu vienlaicīgumu

[Kopēt saiti]
PublicētsVakar plkst.20:48 | | |
Prasības: Daži dati ļauj netīri lasīt, piemēram, rakstu saturs, lapu skatījumi, komentāri utt., kas nav tik stingri kā finanšu dati. Lai uzlabotu vaicājuma veiktspēju, var izmantot ReadUncommitted transakcijas, bet SqlTransaction un TransactionScope ir noplūdes izolācijas līmeņa kļūdas, kas vēl nav novērstas, tāpēc apsveriet iespēju izmantot risinājumu WITH (NOLOCK).

Pārskats:
Entītiju struktūras vaicājumu optimizācija ar(NOLOCK)
https://www.itsvse.com/thread-9513-1-1.html

.NET/C# izmanto SqlScriptDOM, lai parsētu un izpildītu SQL priekšrakstus
https://www.itsvse.com/thread-11222-1-1.html

SqlTransaction un TransactionScope noplūdes izolācijas līmeņi (šī kļūda pastāv jau 8 gadus un joprojām nav novērsta!) Es domāju, ka daudzi cilvēki varētu tikt ietekmēti, bet var to neapzināties):Hipersaites pieteikšanās ir redzama.

Šajā rakstā ir jāatsaucas uz SqlScriptDOM, lai parsētu SQL priekšrakstus un pievienotu WITH(NOLOCK). Skatiet atvērtā koda projektu:Hipersaites pieteikšanās ir redzama.

Nuget citāti ir šādi:
Izveidojiet jaunu AllowDirtyReadAttribute.cs līdzekli, kodējiet šādi:
Izveidojiet jaunu WithNoLockInterceptor, lai ignorētu noteiktas metodes DbCommandInterceptor. Kods ir šāds:
Injicējiet EF Core ar šādu konfigurāciju:
Izmantojiet, lai to pievienotu virs kontroliera metodes[Atļaut netīrumu]Var.

Neapstrādāts SQL paziņojums:
ATLASIET [o]. [Id],
         [o]. [Klienta vārds],
         [o0]. [Id],
         [o0]. [Pasūtījuma ID],
         [o0]. [Produkts]
NO [Pasūtījumi] AS [o]
             KREISAIS ĀRĒJAIS SAVIENOJUMS
         [Pasūtījuma līnijas] AS [o0]
         ON [o]. [Id] = [o0]. [Pasūtījuma ID]
KUR [o]. [id] = 1
RĪKOJUMS PĒC [o]. [Id];

Pārskats, kas ģenerēts pēc NOLOCK pievienošanas:
ATLASIET [o]. [Id],
         [o]. [Klienta vārds],
         [o0]. [Id],
         [o0]. [Pasūtījuma ID],
         [o0]. [Produkts]
NO [Pasūtījumi] KĀ [o] AR (NOLOCK)
         KREISAIS ĀRĒJAIS SAVIENOJUMS
         [Pasūtījuma līnijas] AS [o0] AR (NOLOCK)
         ON [o]. [Id] = [o0]. [Pasūtījuma ID]
KUR [o]. [id] = 1
RĪKOJUMS PĒC [o]. [Id];




Iepriekšējo:(MSSQL) SQL Server pilnteksta meklēšana, pilnteksta indekss
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com