Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 27|Répondre: 0

[Pourboires] Optimisation WITH (NOLOCK) pour les requêtes EF Core à haute concurrence

[Copié le lien]
Publié surHier à 20h48 | | |
Exigences : Certaines données permettent une lecture coquine, comme le contenu des articles, les pages vues, les commentaires, etc., ce qui n’est pas aussi rigoureux que les données financières. Pour améliorer les performances des requêtes, des transactions ReadUncommitted peuvent être utilisées, mais SqlTransaction et TransactionScope présentent des bugs de niveau d’isolement de fuite qui n’ont pas encore été corrigés, il convient donc d’envisager l’utilisation de la solution WITH (NOLOCK).

Révision:
Optimisation des requêtes du Entity Framework AVEC(NOLOCK)
https://www.itsvse.com/thread-9513-1-1.html

.NET/C# utilise SqlScriptDOM pour analyser et exécuter des instructions SQL
https://www.itsvse.com/thread-11222-1-1.html

Niveaux d’isolation des fuites de SqlTransaction et TransactionScope (ce bug existe depuis 8 ans et n’a toujours pas été corrigé !) J’estime que beaucoup de personnes pourraient être affectées, mais ne s’en rendent pas compte :La connexion hyperlientérée est visible.

Cet article doit se référer au SqlScriptDOM pour analyser les instructions SQL et ajouter WITH(NOLOCK). Consultez le projet open source :La connexion hyperlientérée est visible.

Citations Nuget comme suit :
Créez une nouvelle fonctionnalité AllowDirtyReadAttribute.cs, codez comme suit :
Créez un nouveau WithNoLockInterceptor pour écraser certaines méthodes dans DbCommandInterceptor. Le code est le suivant :
Injecter dans EF Core avec la configuration suivante :
Utilise pour l’ajouter au-dessus de la méthode du contrôleur[AutoriserLecture Sale]Pouvoir.

Déclaration SQL brute :
SELECT [o]. [Id],
         [o]. [NomDeClient],
         [o0]. [Id],
         [o0]. [OrderId],
         [o0]. [Produit]
DE [Ordres] COMME [o]
             JOINT EXTÉRIEUR GAUCHE
         [Lignes d’Ordre] AS [o0]
         ON [o]. [Id] = [o0]. [OrderId]
OÙ [o]. [Id] = 1
ORDRE PAR [o]. [Id] ;

Instruction générée après l’ajout de NOLOCK :
SELECT [o]. [Id],
         [o]. [NomDeClient],
         [o0]. [Id],
         [o0]. [OrderId],
         [o0]. [Produit]
DE [Ordres] COMME [O] AVEC (NOLOCK)
         JOINT EXTÉRIEUR GAUCHE
         [Lignes d’Ordre] EN TANT [OO] AVEC (NOLOCK)
         ON [o]. [Id] = [o0]. [OrderId]
OÙ [o]. [Id] = 1
ORDRE PAR [o]. [Id] ;




Précédent:(MSSQL) Recherche en texte intégral SQL Server, index texte intégral
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com