Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 27|Antwort: 0

[Tipps] WITH (NOLOCK)-Optimierung für EF Core-Abfragen mit hoher Nebenläufigkeit

[Link kopieren]
Veröffentlicht amGestern um 20:48 Uhr | | |
Anforderungen: Einige Daten erlauben schmutziges Lesen, wie Artikelinhalte, Seitenaufrufe, Kommentare usw., was nicht so streng ist wie Finanzdaten. Um die Abfrageleistung zu verbessern, können ReadUncommitted-Transaktionen verwendet werden, aber SqlTransaction und TransactionScope haben Leak-Isolation-Fehler, die noch nicht behoben wurden, daher sollten Sie die WITH (NOLOCK)-Lösung in Betracht ziehen.

Rezension:
Entitätsrahmen-Abfrageoptimierung WITH(NOLOCK)
https://www.itsvse.com/thread-9513-1-1.html

.NET/C# verwendet SqlScriptDOM, um SQL-Anweisungen zu parsen und auszuführen
https://www.itsvse.com/thread-11222-1-1.html

SqlTransaction- und TransactionScope-Leckisolierungsstufen (dieser Fehler existiert seit 8 Jahren und wurde immer noch nicht behoben!) Ich schätze, viele Menschen könnten betroffen sein, es aber vielleicht nicht merken):Der Hyperlink-Login ist sichtbar.

Dieser Artikel muss auf das SqlScriptDOM verweisen, um SQL-Anweisungen zu parsen und WITH(NOLOCK) hinzuzufügen. Siehe das Open-Source-Projekt:Der Hyperlink-Login ist sichtbar.

Nuget Angebote wie folgt:
Erstelle eine neue AllowDirtyReadAttribute.cs Funktion, Code wie folgt:
Erstellen Sie einen neuen WithNoLockInterceptor, um bestimmte Methoden in DbCommandInterceptor zu überschreiben. Der Code lautet wie folgt:
Injizieren Sie in EF Core mit folgender Konfiguration:
Nutze es, um es über der Controller-Methode hinzuzufügen[AllowDirtyRead]Dose.

Rohe SQL-Anweisung:
SELECT [o]. [Id],
         [o]. [CustomerName],
         [o0]. [Id],
         [o0]. [OrderId],
         [o0]. [Produkt]
VON [Befehlen] AS [o]
             LINKE ÄUSSERE VERBINDUNG
         [OrderLines] AS [o0]
         AUF [o]. [Id] = [o0]. [OrderId]
WO [o]. [Id] = 1
ORDNUNG NACH [o]. [Id];

Anweisung, die nach Hinzufügen von NOLOCK generiert wird:
SELECT [o]. [Id],
         [o]. [CustomerName],
         [o0]. [Id],
         [o0]. [OrderId],
         [o0]. [Produkt]
VON [Befehlen] WIE [o] MIT (NOLOCK)
         LINKE ÄUSSERE VERBINDUNG
         [OrderLines] ALS [O0] MIT (NOLOCK)
         AUF [o]. [Id] = [o0]. [OrderId]
WO [o]. [Id] = 1
ORDNUNG NACH [o]. [Id];




Vorhergehend:(MSSQL) SQL Server Volltextsuche, Volltextindex
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com