Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 27|Отговор: 0

[Бакшиши] WITH (NOLOCK) оптимизация за висококонкурентни EF Core заявки

[Копирай линк]
Публикувано вВчера в 20:48 | | |
Изисквания: Някои данни позволяват мръсно четене, като съдържание на статии, прегледи на страници, коментари и др., което не е толкова строго, колкото финансовите данни. За подобряване на производителността на заявките може да се използват транзакции ReadUncommed, но SqlTransaction и TransactionScope имат грешки на ниво изолация от изтичане, които все още не са поправени, затова обмислете използването на решението WITH (NOLOCK).

Преглед:
Оптимизация на заявки за Entity Framework WITH(NOLOCK)
https://www.itsvse.com/thread-9513-1-1.html

.NET/C# използва SqlScriptDOM за парсиране и изпълнение на SQL оператори
https://www.itsvse.com/thread-11222-1-1.html

Нива на изолация на течове в SqlTransaction и TransactionScope (този бъг съществува вече 8 години и все още не е оправен!) Оценявам, че много хора може да са засегнати, но може и да не го осъзнават):Входът към хиперлинк е видим.

Тази статия трябва да се позовава на SqlScriptDOM за парсиране на SQL оператори и добавяне на WITH(NOLOCK). Вижте проекта с отворен код:Входът към хиперлинк е видим.

Нюгет цитира по следния начин:
Създайте нова функция за AllowDirtyReadAttribute.cs, кодирайте по следния начин:
Създайте нов WithNoLock Interceptor, който да презапише определени методи в DbCommandInterceptor. Кодът е следният:
Инжектиране в EF Core със следната конфигурация:
Използвай го да го добавиш над метода с контролера[ПозволиМръсно Четене]Мога.

Raw SQL изявление:
ИЗБЕРЕТЕ [o]. [Id],
         [o]. [Име на клиент],
         [o0]. [Id],
         [o0]. [OrderId],
         [o0]. [Продукт]
ОТ [Заповеди] AS [o]
             ЛЯВО ВЪНШНО СЪЕДИНЕНИЕ
         [OrderLines] AS [o0]
         ON [o]. [id] = [o0]. [OrderId]
КЪДЕТО [o]. [Id] = 1
ПОРЪЧКА ОТ [o]. [Id];

Изявление, генерирано след добавяне на NOLOCK:
ИЗБЕРЕТЕ [o]. [Id],
         [o]. [Име на клиент],
         [o0]. [Id],
         [o0]. [OrderId],
         [o0]. [Продукт]
ОТ [Заповеди] AS [o] С (NOLOCK)
         ЛЯВО ВЪНШНО СЪЕДИНЕНИЕ
         [OrderLines] AS [o0] С (NOLOCK)
         ON [o]. [id] = [o0]. [OrderId]
КЪДЕТО [o]. [Id] = 1
ПОРЪЧКА ОТ [o]. [Id];




Предишен:(MSSQL) SQL Server Пълнотекстово търсене, Пълен текстов индекс
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com