Συμπτώματα
Όταν χρησιμοποιείτε είτε μια νέα παρουσία του Microsoft SQL Server 2016 (ή 2017) είτε μια παρουσία του SQL Server 2016 (ή 2017) που έχει αναβαθμιστεί από μια παλαιότερη έκδοση του SQL Server, αντιμετωπίζετε ζητήματα επιδόσεων λόγω της υψηλής χρήσης της CPU. Επιπλέον, εάν υποβάλετε ερώτημα στον sys.dm_os_spinlock_stats πίνακα, θα παρατηρήσετε μια υψηλή τιμή στη στήλη περιστροφών για τις γραμμές SECURITY_CACHE (Cache ασφαλείας) και CMED_HASH_SET (Cache μετα-δεδομένων) (σε σύγκριση με άλλες γραμμές στον πίνακα). Για παράδειγμα, παρατηρείτε τις ακόλουθες τιμές.
Αιτία
Αυτό το πρόβλημα παρουσιάζεται λόγω υψηλής διένεξης κλειδώματος περιστροφής σε ένα σύστημα με πολλές ταυτόχρονες καταχωρήσεις. Σε αυτά τα λειτουργικά συστήματα, πολλά νήματα CPU ανταγωνίζονται για πόρους και περιστρέφονται για μεγάλο χρονικό διάστημα, ενώ εκτελούνται περιοδικά σε βρόχο για να καθορίσουν εάν ο πόρος είναι διαθέσιμος αντί να αποδώσουν αμέσως. Όταν πολλά νήματα CPU συνεχίζουν να περιστρέφονται (σε βρόχο λίγου ) για έναν πόρο αντί να αποδώσουν, αυτό προκαλεί προβλήματα υψηλής χρήσης και απόδοσης της CPU.
Επίλυση
Αυτό το πρόβλημα διορθώθηκε στις ακόλουθες αθροιστικές ενημερωμένες εκδόσεις για SQL Server:
Σημείωση Αφού εφαρμόσετε SQL Server 2016 αθροιστική ενημερωμένη έκδοση 2 (CU2), τα ονόματα SECURITY_CACHE και CMED_HASH_SET αλλάζουν σε LOCK_RW_SECURITY_CACHE και LOCK_RW_CMED_HASH_SET, αντίστοιχα. Μετά την εφαρμογή της μονάδας CU2, οι τιμές εμφανίζονται ως εξής.
Πληροφορίες σχετικά με τις αθροιστικές ενημερώσεις για SQL Server
Κάθε νέα αθροιστική ενημερωμένη έκδοση για SQL Server περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερώσεις κώδικα ασφαλείας που συμπεριλήφθηκαν με την προηγούμενη αθροιστική ενημερωμένη έκδοση. Δείτε τις πιο πρόσφατες αθροιστικές ενημερώσεις για SQL Server:
Τελευταία αθροιστική ενημέρωση για το SQL Server 2017
Τελευταία αθροιστική ενημέρωση για το SQL Server 2016
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα που αφορά τα προϊόντα της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".
Παραπομπές
Ενημερωθείτε για την ορολογία που χρησιμοποιεί η Microsoft για να περιγράφει τις ενημερώσεις λογισμικού.
Η λευκή βίβλος Διάγνωση και επίλυση διένεξης Spinlock στο SQL Server συζητά λεπτομερώς ζητήματα και λύσεις που σχετίζονται με τη διαμάχη spinlock.