KB3162589 - ΕΠΙΔΙΌΡΘΩΣΗ: Μειωμένη απόδοση SQL Server όταν υπάρχει αυξημένη χρήση CPU προνομιακής λειτουργίας και μεγάλος όγκος αναμονής μανδάλου σελίδας

Ισχύει για
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Web - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2012 Service Pack 3 SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Enterprise Core SQL Server 2012 Standard SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Express - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Συμπτώματα

Μετά την εγκατάσταση του SQL Server 2014 Service Pack 1 (SP1), του SQL Server 2012 SP3 ή του SQL Server 2016, αντιμετωπίζετε αργές επιδόσεις ερωτημάτων και χρήση CPU σε κατάσταση λειτουργίας με αυξημένα δικαιώματα (πυρήνας) μέχρι να γίνει επανεκκίνηση του διακομιστή. Ενδέχεται επίσης να δείτε μεγάλο όγκο αναμονών PAGELATCH_*.

Επίλυση

Αυτό το πρόβλημα διορθώθηκε στις ακόλουθες συγκεντρωτικές ενημερώσεις του SQL Server:

Σύσταση: Εγκαταστήστε την πιο πρόσφατη αθροιστική ενημερωμένη έκδοση για SQL Server

Κάθε νέα αθροιστική ενημερωμένη έκδοση για SQL Server περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερώσεις κώδικα ασφαλείας που συμπεριλήφθηκαν με την προηγούμενη αθροιστική ενημερωμένη έκδοση. Συνιστάται να κάνετε λήψη και εγκατάσταση των πιο πρόσφατων αθροιστικών ενημερώσεων για SQL Server:

      

        
      

Αιτία

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 που παρατίθενται στην ενότητα "Ισχύει για".