* Κλείδωμα επιτραπέζιου επιπέδου: Αυτός είναι ο πλησιέστερος διακομιστής SQL φτάνει σε "κλειδαριά καρτέλας". Σε ορισμένες περιπτώσεις, ο SQL Server μπορεί να αποκτήσει κοινόχρηστο ή αποκλειστικό (x) κλειδαριά στο επίπεδο του πίνακα. Αυτό σημαίνει ότι ολόκληρο το τραπέζι είναι κλειδωμένο, εμποδίζοντας τις άλλες ταυτόχρονες λειτουργίες από την τροποποίηση ή ακόμα και την ανάγνωση (ανάλογα με τον τύπο κλειδώματος) τον πίνακα μέχρι να απελευθερωθεί η κλειδαριά. Αυτό συμβαίνει συχνά με κακώς σχεδιασμένα ερωτήματα ή υπό υψηλό ισχυρισμό. Δεν είναι μια σκόπιμη ρύθμιση που επιλέγετε. Είναι συνέπεια του σχεδίου πρόσβασης του ερωτήματος και του επιλεγμένου επιπέδου απομόνωσης.
* παρεξήγηση του κλειδαριδίου σε επίπεδο σειράς: Ο SQL Server χρησιμοποιεί κυρίως κλείδωμα σε επίπεδο σειράς. Αυτό σημαίνει ότι μόνο οι συγκεκριμένες σειρές που τροποποιούνται είναι κλειδωμένες, επιτρέποντας σε άλλους χρήστες να έχουν πρόσβαση ταυτόχρονα και να τροποποιούν άλλες σειρές στον ίδιο πίνακα. Ωστόσο, εάν πολλές σειρές ενημερώνονται ταυτόχρονα, το σύστημα ενδέχεται να έχει ακόμα υποβάθμιση της απόδοσης, παρόλο που δεν είναι πλήρης "κλειδαριά καρτέλας".
* Κλείδωμα τροποποίησης σχήματος: Όταν μεταβάλλετε τη δομή ενός πίνακα (προσθήκη, τροποποίηση ή διαγραφή στηλών, προσθέτοντας δείκτες κ.λπ.), ο SQL Server τοποθετεί τις κλειδαριές για να αποφευχθεί η ταυτόχρονη τροποποίηση του σχήματος πίνακα. Αυτά εφαρμόζονται σιωπηρά και είναι συνήθως βραχύβια.
Γιατί σπάνια βλέπετε πραγματικές "κλειδαριές καρτέλας" σε ένα σύγχρονο περιβάλλον SQL Server:
* Επιπτώσεις απόδοσης: Οι κλειδαριές σε επίπεδο τραπέζι περιορίζουν σοβαρά τη συνάφεια και μπορούν να οδηγήσουν σε σημαντικές συμφόρηση απόδοσης. Είναι εξαιρετικά ανεπιθύμητα στα περισσότερα σενάρια.
* Βελτιστοποίηση κλειδώματος σε επίπεδο σειράς: Το Aptimizer του SQL Server Server προσπαθεί να χρησιμοποιήσει το κλείδωμα σε επίπεδο σειράς όποτε είναι δυνατόν για να μεγιστοποιηθεί η ταυτότητα.
* Επίπεδα απομόνωσης: Το επίπεδο απομόνωσης που επιλέγεται (διαβάστε μη δεσμευμένος, ανάγνωση δεσμευμένης, επαναλαμβανόμενης ανάγνωσης, σειριοποιήσιμης) επηρεάζει τον τρόπο με τον οποίο αποκτώνται και πραγματοποιούνται κλειδαριές, επηρεάζοντας περαιτέρω την πιθανότητα κλειδώματος σε επίπεδο επιτραπέζιου επιπέδου.
Συνοπτικά: Ενώ ο όρος "κλειδαριά καρτέλας" δεν είναι τεχνικά ακριβής για τον SQL Server, χρησιμοποιείται ανεπίσημα για να περιγράψει καταστάσεις όπου ολόκληρος ο πίνακας είναι κλειδωμένος λόγω της εκτέλεσης ερωτήματος ή των τροποποιήσεων σχήματος. Αυτό είναι συνήθως ένα σύμπτωμα ενός προβλήματος και όχι ένα σκόπιμο χαρακτηριστικό. Εάν αντιμετωπίζετε προβλήματα απόδοσης που φαίνονται σαν "κλειδαριά καρτέλας", ερευνήστε τα ερωτήματα, την ευρετηρίαση και τα επίπεδα απομόνωσης για να κατανοήσετε και να βελτιστοποιήσετε το μοντέλο ταυτόχρονης βάσης δεδομένων. Η ανάλυση του Lock Waits χρησιμοποιώντας εργαλεία όπως `sp_whoisactive 'ή sql server profiler θα βοηθήσει στη διάγνωση της βασικής αιτίας.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα