Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 27|Απάντηση: 0

[Συμβουλές] Βελτιστοποίηση WITH (NOLOCK) για ερωτήματα EF Core υψηλής ταυτόχρονης χρήσης

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στιςΧθες στις 20:48 | | |
απαιτήσεις: Ορισμένα δεδομένα επιτρέπουν τη βρώμικη ανάγνωση, όπως το περιεχόμενο του άρθρου, οι προβολές σελίδων, τα σχόλια κ.λπ., η οποία δεν είναι τόσο αυστηρή όσο τα οικονομικά δεδομένα. Για τη βελτίωση των επιδόσεων του ερωτήματος, μπορούν να χρησιμοποιηθούν συναλλαγές ReadUncommitted (ReadUncommitted transactions), αλλά τα SqlTransaction και TransactionScope έχουν σφάλματα επιπέδου απομόνωσης διαρροών που δεν έχουν επιδιορθωθεί ακόμα, επομένως εξετάστε το ενδεχόμενο να χρησιμοποιήσετε τη λύση WITH (NOLOCK).

Αναθεώρηση:
Entity Framework Query Optimization 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). Ανατρέξτε στο έργο ανοιχτού κώδικα:Η σύνδεση με υπερσύνδεσμο είναι ορατή.

Ο Nuget αναφέρει ως εξής:
Δημιουργήστε μια νέα δυνατότητα AllowDirtyReadAttribute.cs, κωδικοποιήστε ως εξής:
Δημιουργήστε ένα νέο WithNoLockInterceptor για να παρακάμψετε ορισμένες μεθόδους στο DbCommandInterceptor. Ο κώδικας έχει ως εξής:
Εισαγωγή στον πυρήνα EF με την ακόλουθη διαμόρφωση:
Χρησιμοποιήστε το για να το προσθέσετε πάνω από τη μέθοδο ελεγκτή[Να επιτρέπεταιDirtyRead]Μπορώ.

Πρόταση Raw SQL:
ΕΠΙΛΕΞΤΕ [o]. [ταυτότητα],
         [ο]. [ΌνομαΠελάτη],
         [Ο0]. [ταυτότητα],
         [Ο0]. [ΚωδΠαραγγελίας],
         [Ο0]. [Προϊόν]
ΑΠΟ [Διατάσσει] AS [ιε]
             ΑΡΙΣΤΕΡΌΣ ΕΞΩΤΕΡΙΚΌΣ ΣΎΝΔΕΣΜΟΣ
         [Γραμμές παραγγελίας] AS [o0]
         ON [ο]. [Id] = [o0]. [Αναγνωριστικό παραγγελίας]
ΟΠΟΥ [ο]. [id] = 1
ΔΙΑΤΑΞΗ ΑΠΟ [ο]. [Ταυτότητα];

Δήλωση που δημιουργήθηκε μετά την προσθήκη του NOLOCK:
ΕΠΙΛΕΞΤΕ [o]. [ταυτότητα],
         [ο]. [ΌνομαΠελάτη],
         [Ο0]. [ταυτότητα],
         [Ο0]. [ΚωδΠαραγγελίας],
         [Ο0]. [Προϊόν]
ΑΠΟ [Παραγγελίες] AS [o] ΜΕ (NOLOCK)
         ΑΡΙΣΤΕΡΌΣ ΕΞΩΤΕΡΙΚΌΣ ΣΎΝΔΕΣΜΟΣ
         [Γραμμές παραγγελίας] AS [o0] ΜΕ (NOLOCK)
         ON [ο]. [Id] = [o0]. [Αναγνωριστικό παραγγελίας]
ΟΠΟΥ [ο]. [id] = 1
ΔΙΑΤΑΞΗ ΑΠΟ [ο]. [Ταυτότητα];




Προηγούμενος:(MSSQL) SQL Server Αναζήτηση πλήρους κειμένου, Ευρετήριο πλήρους κειμένου
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com