Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 27|Răspunde: 0

[Bacșișuri] Optimizare WITH (NOLOCK) pentru interogări EF Core cu concurență mare

[Copiază linkul]
Postat peIeri la 20:48 | | |
Cerințe: Unele date permit citirea superficială, cum ar fi conținutul articolelor, vizualizările de pagină, comentariile etc., care nu sunt la fel de riguroase ca datele financiare. Pentru a îmbunătăți performanța interogărilor, pot fi folosite tranzacții ReadUncommitted, dar SqlTransaction și TransactionScope au erori la nivel de izolare a scurgerilor care nu au fost încă corectate, așa că luați în considerare utilizarea soluției WITH (NOLOCK).

Recenzie:
Optimizarea interogărilor Entity Framework WITH(NOLOCK)
https://www.itsvse.com/thread-9513-1-1.html

.NET/C# folosește SqlScriptDOM pentru a analiza și executa instrucțiuni SQL
https://www.itsvse.com/thread-11222-1-1.html

Nivelurile de izolare a scurgerilor SqlTransaction și TransactionScope (acest bug există de 8 ani și încă nu a fost remediat!) Estimez că mulți oameni ar putea fi afectați, dar s-ar putea să nu realizeze asta):Autentificarea cu hyperlink este vizibilă.

Acest articol trebuie să facă referire la SqlScriptDOM pentru a analiza instrucțiunile SQL și a adăuga WITH(NOLOCK). Consultați proiectul open-source:Autentificarea cu hyperlink este vizibilă.

Nuget citează astfel:
Creează o nouă funcție de AllowDirtyReadAttribute.cs, codează după cum urmează:
Creează un nou WithNoLockInterceptor pentru a suprascrie anumite metode în DbCommandInterceptor. Codul este următorul:
Injectează în EF Core cu următoarea configurație:
Folosește metoda pentru a o adăuga deasupra controller-ului[PermiteCitește Murdar]Putea.

Declarație SQL brută:
SELECT [o]. [Id],
         [o]. [NumeClient],
         [o0]. [Id],
         [o0]. [OrderId],
         [o0]. [Produs]
DIN [Ordine] CA [o]
             ÎMBINAREA EXTERIOARĂ STÂNGĂ
         [Linii de comandă] AS [o0]
         ON [o]. [Id] = [o0]. [OrderId]
UNDE [o]. [Id] = 1
ORDINE DE [o]. [Id];

Declarație generată după adăugarea NOLOCK:
SELECT [o]. [Id],
         [o]. [NumeClient],
         [o0]. [Id],
         [o0]. [OrderId],
         [o0]. [Produs]
DE [Ordine] CA [O] CU (NOLOCK)
         ÎMBINAREA EXTERIOARĂ STÂNGĂ
         [Linii de comandă] CA [OO] CU (NOLOCK)
         ON [o]. [Id] = [o0]. [OrderId]
UNDE [o]. [Id] = 1
ORDINE DE [o]. [Id];




Precedent:(MSSQL) SQL Server Căutare Text Integral, Index Text Integral
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com