|
|
ZverejnenéVčera o 20:48
|
|
|

Požiadavky: Niektoré údaje umožňujú nekvalitné čítanie, ako je obsah článkov, počet zobrazení stránok, komentáre a podobne, čo nie je také prísne ako finančné údaje. Na zlepšenie výkonu dotazov je možné použiť transakcie ReadUncommed, ale SqlTransaction a TransactionScope majú chyby na úrovni izolácie úniku, ktoré zatiaľ neboli opravené, preto zvážte použitie riešenia WITH (NOLOCK).
Revízia:
Úrovne izolácie úniku v SqlTransaction a TransactionScope (táto chyba existuje už 8 rokov a stále nebola opravená!) Odhadujem, že mnohých ľudí to môže ovplyvniť, ale možno si to neuvedomujú):Prihlásenie na hypertextový odkaz je viditeľné.
Tento článok potrebuje odkazovať na SqlScriptDOM na spracovanie SQL príkazov a pridanie WITH(NOLOCK). Pozrite si open-source projekt:Prihlásenie na hypertextový odkaz je viditeľné.
Nuget cituje nasledovne:
Vytvorte novú AllowDirtyReadAttribute.cs funkciu, naprogramujte nasledovne:
Vytvorte nový WithNoLockInterceptor na prepísanie určitých metód v DbCommandInterceptor. Kód je nasledovný:
Injektujte do EF Core s nasledujúcou konfiguráciou:
Použite to na pridanie nad metódu ovládača[DovoliťŠpinavéČítanie]Môcť.
Raw SQL príkaz:
SELECT [o]. [Id], [o]. [CustomerName], [o0]. [Id], [o0]. [OrderId], [o0]. [Produkt] OD [Príkazy] AS [o] ĽAVÝ VONKAJŠÍ SPOJ [OrderLines] AS [o0] ON [o]. [Id] = [o0]. [OrderId] KDE [o]. [Id] = 1 PORADIE PODĽA [o]. [Id]; Príkaz generovaný po pridaní NOLOCK:
SELECT [o]. [Id], [o]. [CustomerName], [o0]. [Id], [o0]. [OrderId], [o0]. [Produkt] OD [Rozkazy] AKO [o] S (NOLOCK) ĽAVÝ VONKAJŠÍ SPOJ [OrderLines] AKO [o0] S (NOLOCK) ON [o]. [Id] = [o0]. [OrderId] KDE [o]. [Id] = 1 PORADIE PODĽA [o]. [Id]; |
Predchádzajúci:(MSSQL) SQL Server plnotextové vyhľadávanie, index plného textu
|