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