Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 27|Odpowiedź: 0

[Napiwki] Optymalizacja WITH (NOLOCK) dla zapytań rdzeniowych EF o wysokiej równobieżności

[Skopiuj link]
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:
Optymalizacja zapytań w ramach Entity Framework WITH(NOLOCK)
https://www.itsvse.com/thread-9513-1-1.html

.NET/C# wykorzystuje SqlScriptDOM do parsowania i wykonywania instrukcji SQL
https://www.itsvse.com/thread-11222-1-1.html

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
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com