Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 27|Odpověď: 0

[Tipy] Optimalizace WITH (NOLOCK) pro dotazy EF Core s vysokou souběžností

[Kopírovat odkaz]
ZveřejněnoVčera v 20:48 | | |
Požadavky: Některá data umožňují nekvalitní čtení, například obsah článků, počet zobrazení stránek, komentáře atd., což není tak přísné jako finanční data. Pro zlepšení výkonu dotazů lze použít transakce ReadUncommed, ale SqlTransaction a TransactionScope mají chyby na úrovni úniku úniků, které dosud nebyly opraveny, proto zvažte použití řešení WITH (NOLOCK).

Přezkoumání:
Optimalizace dotazů v rámci entity s POMOCÍ NOLOCK)
https://www.itsvse.com/thread-9513-1-1.html

.NET/C# používá SqlScriptDOM k parsování a provádění SQL příkazů
https://www.itsvse.com/thread-11222-1-1.html

Úrovně izolace úniku v SqlTransaction a TransactionScope (tato chyba existuje už 8 let a stále nebyla opravena!) Odhaduji, že mnoho lidí může být ovlivněno, ale nemusí si to uvědomovat):Přihlášení k hypertextovému odkazu je viditelné.

Tento článek potřebuje odkazovat na SqlScriptDOM, aby mohl parsovat SQL příkazy a přidat WITH(NOLOCK). Odkazujte na open-source projekt:Přihlášení k hypertextovému odkazu je viditelné.

Nuget uvádí následující:
Vytvořte novou AllowDirtyReadAttribute.cs funkci, naprogramujte následovně:
Vytvořte nový WithNoLockInterceptor pro přepsání určitých metod v DbCommandInterceptor. Kód je následující:
Vstříkněte do EF Core s následující konfigurací:
Použijte to k přidání nad metodu ovladače[DovolitŠpinavéČíst]Konev.

Raw SQL příkaz:
VYBERTE [o]. [Id],
         [o]. [Jméno zákazníka],
         [o0]. [Id],
         [o0]. [OrderId],
         [o0]. [Produkt]
OD [Příkazy] JAKO [o]
             LEVÝ VNĚJŠÍ SPOJ
         [Objednávkové řádky] AS [o0]
         ON [o]. [Id] = [o0]. [OrderId]
KDE [o]. [Id] = 1
POŘADÍ PODLE [o]. [Id];

Příkaz generovaný po přidání NOLOCK:
VYBERTE [o]. [Id],
         [o]. [Jméno zákazníka],
         [o0]. [Id],
         [o0]. [OrderId],
         [o0]. [Produkt]
OD [Rozkazy] JAKO [o] S (NOLOCK)
         LEVÝ VNĚJŠÍ SPOJ
         [Objednávkové řádky] AS [o0] S (NOLOCK)
         ON [o]. [Id] = [o0]. [OrderId]
KDE [o]. [Id] = 1
POŘADÍ PODLE [o]. [Id];




Předchozí:(MSSQL) SQL Server Full-text search, full-text index
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com