|
|
OpublikowanoWczoraj o 20:48
|
|
|

Wymagania: Niektóre dane pozwalają na nieuczciwe odczyty, takie jak treść artykułów, liczba odsłon, komentarze itp., co nie jest tak rygorystyczne jak dane finansowe. Aby poprawić wydajność zapytań, można stosować transakcje ReadUncommed, ale SqlTransaction i TransactionScope mają błędy na poziomie izolacji wycieku, które nie zostały jeszcze naprawione, więc rozważ użycie rozwiązania WITH (NOLOCK).
Recenzja:
Poziomy izolacji wycieku SqlTransaction i TransactionScope (ten błąd istnieje od 8 lat i nadal nie został naprawiony!) Szacuję, że wiele osób może być dotkniętych, ale mogą tego nie zdawać sobie sprawy):Logowanie do linku jest widoczne.
Ten artykuł musi odnosić się do SqlScriptDOM, aby analizować instrukcje SQL i dodać WITH(NOLOCK). Odniesienie do projektu open-source:Logowanie do linku jest widoczne.
Nuget cytuje następująco:
Stwórz nową AllowDirtyReadAttribute.cs funkcję, zakoduj następująco:
Utwórz nowy WithNoLockInterceptor do nadpisywania określonych metod w DbCommandInterceptor. Kod wygląda następująco:
Wstrzyknij do rdzenia EF z następującą konfiguracją:
Używam do dodania go powyżej metody kontrolera[Pozwól na brudne czytanie]Puszka.
Oświadczenie RAW SQL:
WYBIERZ [o]. [Id], [o]. [CustomerName], [o0]. [Id], [o0]. [OrderId], [o0]. [Produkt] OD [Rozkazy] AS [o] LEWY ZEWNĘTRZNY ZŁĄCZE [Linie Rozkazów] AS [o0] ON [o]. [Id] = [o0]. [OrderId] GDZIE [o]. [Id] = 1 ORDER BY [o]. [Id]; Oświadczenie generowane po dodaniu NOLOCK:
WYBIERZ [o]. [Id], [o]. [CustomerName], [o0]. [Id], [o0]. [OrderId], [o0]. [Produkt] OD [Rozkazy] AS [o] Z (NOLOCK) LEWY ZEWNĘTRZNY ZŁĄCZE [Linie Rozkazów] AS [o0] Z (NOLOCK) ON [o]. [Id] = [o0]. [OrderId] GDZIE [o]. [Id] = 1 ORDER BY [o]. [Id]; |
Poprzedni:(MSSQL) SQL Server – wyszukiwanie pełnotekstowe, indeks pełnotekstowy
|