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