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

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

Κλειδαριές SQL NOLOCK, HOLDLOCK, UPDLOCK, TABLOCK, TABLOCKX

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 20/7/2016 2:02:51 μ.μ. | | |

ΝΟΛΟΚ
Όταν είναι ενεργοποιημένη αυτή η επιλογή, ο SQL Server διαβάζει ή τροποποιεί δεδομένα χωρίς κλειδώματα. Σε αυτήν την περίπτωση, ο χρήστης μπορεί να διαβάσει δεδομένα από μια Μη Δεσμευμένη Συναλλαγή ή Επαναφορά, γνωστά ως «βρώμικα δεδομένα».

ΚΛΕΙΔΩΜΑ ΚΡΑΤΗΣΗΣ
Όταν είναι ενεργοποιημένη αυτή η επιλογή, ο SQL Server διατηρεί αυτό το κοινόχρηστο κλείδωμα μέχρι το τέλος ολόκληρης της συναλλαγής χωρίς να το απελευθερώσει καθ' οδόν.

ΕΝΗΜΕΡΩΣΗ
Όταν είναι ενεργοποιημένη αυτή η επιλογή, ο SQL Server χρησιμοποιεί ένα κλείδωμα τροποποίησης αντί για ένα κοινόχρηστο κλείδωμα κατά την ανάγνωση δεδομένων και διατηρεί αυτό το κλείδωμα μέχρι το τέλος ολόκληρης της συναλλαγής ή της εντολής. Αυτή η επιλογή εξασφαλίζει ότι πολλές διεργασίες μπορούν να διαβάσουν δεδομένα ταυτόχρονα, αλλά μόνο αυτή η διαδικασία μπορεί να τροποποιήσει τα δεδομένα.

ΤΑΜΠΛΌΚ
Όταν είναι ενεργοποιημένη αυτή η επιλογή, ο SQL Server θα τοποθετήσει ένα κοινόχρηστο κλείδωμα σε ολόκληρο τον πίνακα μέχρι να λήξει η εντολή. Αυτή η επιλογή διασφαλίζει ότι άλλες διεργασίες μπορούν μόνο να διαβάσουν και όχι να τροποποιήσουν τα δεδομένα.

ΠΑΓΛΟΚ
Αυτή η επιλογή είναι η προεπιλεγμένη επιλογή και, όταν είναι ενεργοποιημένη, ο SQL Server χρησιμοποιεί ένα κοινόχρηστο κλείδωμα σελίδας.

TABLOCKX (Αποκλειστική κλειδαριά τραπεζιού)
Όταν είναι ενεργοποιημένη αυτή η επιλογή, ο SQL Server θα τοποθετήσει ένα κλείδωμα σε ολόκληρο τον πίνακα μέχρι να λήξει η εντολή ή η συναλλαγή. Αυτό θα αποτρέψει άλλες διεργασίες από την ανάγνωση ή την τροποποίηση των δεδομένων στον πίνακα.

Το HOLDLOCK διατηρεί το κοινόχρηστο κλείδωμα μέχρι να ολοκληρωθεί ολόκληρη η συναλλαγή και θα πρέπει να αποδεσμευτεί μόλις δεν χρειάζεται το κλειδωμένο αντικείμενο, ίσο με το επίπεδο απομόνωσης συναλλαγής SERIALIZABLE

Η δήλωση NOLOCK εκτελείται χωρίς την έκδοση κοινόχρηστου κλειδώματος, επιτρέποντας βρώμικες αναγνώσεις, το οποίο ισούται με το επίπεδο απομόνωσης συναλλαγής READ UNCOMMITTED

Το PAGLOCK χρησιμοποιεί πολλαπλά κλειδώματα σελίδων όπου χρησιμοποιείται ένα κλείδωμα πίνακα

Το READPAST επιτρέπει στον sql server να παραλείπει τυχόν κλειδωμένες γραμμές και να εκτελεί συναλλαγές και για τα επίπεδα απομόνωσης συναλλαγών READ UNMITTED, να παραλείπει μόνο τα κλειδώματα RID και όχι τα κλειδώματα σελίδας, ζώνης και πίνακα

Το ROWLOCK επιβάλλει τη χρήση κλειδαριών σειρών

Το TABLOCKX επιβάλλει τη χρήση ενός αποκλειστικού κλειδώματος σε επίπεδο πίνακα, το οποίο εμποδίζει οποιαδήποτε άλλη συναλλαγή να χρησιμοποιήσει τον πίνακα κατά τη διάρκεια της συναλλαγής

Το UPLOCK επιβάλλει τη χρήση ενημερώσεων κατά την ανάγνωση ενός πίνακα χωρίς κοινόχρηστο κλείδωμα

Σημείωση: Η διαφορά μεταξύ του κλειδώματος ενός πίνακα σε μια βάση δεδομένων
ΕΠΙΛΟΓΗ * ΑΠΟ πίνακα ΜΕ (HOLDLOCK) Άλλες συναλλαγές μπορούν να διαβάσουν τον πίνακα, αλλά δεν μπορούν να ενημερώσουν ή να διαγράψουν
ΕΠΙΛΟΓΗ * ΑΠΟ πίνακα ΜΕ (TABLOCKX) Άλλες συναλλαγές δεν μπορούν να διαβάσουν, να ενημερώσουν και να διαγράψουν πίνακες




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

Mail To:help@itsvse.com