Συμπτώματα
Μετά την εγκατάσταση του SQL Server 2014 Service Pack 1 (SP1), του SQL Server 2012 SP3 ή του SQL Server 2016, αντιμετωπίζετε αργές επιδόσεις ερωτημάτων και χρήση CPU σε κατάσταση λειτουργίας με αυξημένα δικαιώματα (πυρήνας) μέχρι να γίνει επανεκκίνηση του διακομιστή. Ενδέχεται επίσης να δείτε μεγάλο όγκο αναμονών PAGELATCH_*.
Επίλυση
Αυτό το πρόβλημα διορθώθηκε στις ακόλουθες συγκεντρωτικές ενημερώσεις του SQL Server:
- Αθροιστική ενημερωμένη έκδοση 2 για SQL Server 2016
- Αθροιστική ενημερωμένη έκδοση 5 για SQL Server 2012 Service Pack 3 (SP3)
- Αθροιστική ενημερωμένη έκδοση 7 για SQL Server 2014 SP1
Σύσταση: Εγκαταστήστε την πιο πρόσφατη αθροιστική ενημερωμένη έκδοση για SQL Server
Κάθε νέα αθροιστική ενημερωμένη έκδοση για SQL Server περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερώσεις κώδικα ασφαλείας που συμπεριλήφθηκαν με την προηγούμενη αθροιστική ενημερωμένη έκδοση. Συνιστάται να κάνετε λήψη και εγκατάσταση των πιο πρόσφατων αθροιστικών ενημερώσεων για SQL Server:
- Τελευταία αθροιστική ενημέρωση για το SQL Server 2016
- Τελευταία αθροιστική ενημερωμένη έκδοση για το SQL Server 2012 SP3
- Τελευταία αθροιστική ενημερωμένη έκδοση για το SQL Server 2014 SP1
Αιτία
SQL Server χρησιμοποιεί δυναμική προώθηση μανδάλου και λογική υποβιβασμού (super/sub-latch). Αυτό βελτιώνει την απόδοση και την επεκτασιμότητά SQL Server, παρακολουθώντας τον αριθμό των αποκτήσεων σε ένα μάνδαλο και τον χρόνο που θα χρειαστεί για να αποκτήσετε το ίδιο μάνδαλο, εάν δεν υπήρχε διένεξη μανδάλωσης. Στη συνέχεια, προωθούνται τα κατάλληλα μάνδαλα (super-latch) με βάση αυτό το μοντέλο. Όταν υπάρχουν πολλές αλλαγές (ένθετα/ενημερώσεις/διαγραφές) σε ένα σωρό ή BTree (HoBT), τα μάνδαλα που σχετίζονται με το HoBT μπορούν να προαχθούν σε κατάσταση σούπερ μανδάλωσης. Ωστόσο, ο υποβιβασμός δεν γίνεται αυτόματα. Μπορείτε να διαβάσετε περισσότερα σχετικά με το super/sub-latching σε αυτό το άρθρο.
Εάν αυτά τα HoBT παρουσιαστούν αργότερα, το απελευθερωμένο HoBT επιστρέφει σε μια παγκόσμια προσωρινή μνήμη για επαναχρησιμοποίηση. Όταν αυτό το HOBT επαναχρησιμοποιείται, επαναχρησιμοποιεί το προηγουμένως προαχθέν μάνδαλο, ακόμη και όταν δεν υπάρχει διαφωνία στο HoBT. Αυτό προσθέτει γενικά έξοδα CPU. Αυτή η συμπεριφορά αυξάνει τη χρήση της CPU σε προνομιακή κατάσταση λειτουργίας (πυρήνα) του SQL Server μέχρι την επανεκκίνηση του διακομιστή. Αυτή η αύξηση συνήθως δεν προσθέτει περισσότερα από μερικά μικροδευτερόλεπτα με κάθε εκτέλεση. Ενδέχεται επίσης να δείτε μεγάλο όγκο αναμονών PAGELATCH_* λόγω αυτών των εκτεταμένων υπερ-μανδάλων στα HoBT.
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα που αφορά τα προϊόντα της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".