Συμπτώματα
Όταν χρησιμοποιείτε είτε μια νέα παρουσία του Microsoft SQL Server 2016 (ή 2017) είτε μια παρουσία SQL Server 2016 (ή 2017) που έχει αναβαθμιστεί από παλαιότερη έκδοση του SQL Server, αντιμετωπίζετε προβλήματα επιδόσεων λόγω της υψηλής χρήσης CPU. Επιπλέον, εάν υποβάλετε ερώτημα στον πίνακα sys.dm_os_spinlock_stats , θα παρατηρήσετε μια υψηλή τιμή στη στήλη περιστροφών για τις γραμμές SECURITY_CACHE (Cache ασφαλείας) και CMED_HASH_SET (Cache μετα-δεδομένων) (σε σύγκριση με άλλες γραμμές στον πίνακα). Για παράδειγμα, θα παρατηρήσετε τις ακόλουθες τιμές.
Αιτία
Αυτό το πρόβλημα παρουσιάζεται λόγω της υψηλής διαμάχης spin lock σε ένα εξαιρετικά ταυτόχρονο σύστημα. Σε αυτά τα λειτουργικά συστήματα, πολλά νήματα 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:
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για πρόβλημα στα προϊόντα της Microsoft που αναφέρονται στην ενότητα "Ισχύει για".
Αναφορές
Ενημερωθείτε σχετικά με την ορολογία που χρησιμοποιεί η Microsoft για την περιγραφή ενημερώσεων λογισμικού.
Η white paper Diagnosing and Resolving Spinlock Contention on SQL Server συζητά θέματα και λύσεις που σχετίζονται με τον ισχυρισμό spinlock λεπτομερώς.