Συμπτώματα
Εξετάστε το ακόλουθο σενάριο:
-
Έχετε έναν πίνακα που περιέχει ευρετήρια ομαδοποιημένων columnstore σε αυτό και ο πίνακας έχει πολλές στήλες (σε εκατοντάδες).
-
Τα δεδομένα (τύπος δεδομένων) αυτών των στηλών είναι ιδιαίτερα συμπιεστικά δεδομένα, όπως το varchar.
-
Μπορείτε να εκτελέσετε μια πρόταση Select σε αυτόν τον πίνακα για να επιλέξετε ένα μεγάλο υποσύνολο ή όλες τις στήλες από αυτόν τον πίνακα.
-
Η πρόταση Select έχει έναν όρο WHERE που περιορίζει την έξοδο του σε πολύ λίγες γραμμές (το ερώτημα είναι ιδιαίτερα επιλεκτικό).
Σε αυτό το σενάριο, ενδέχεται να αντιμετωπίσετε οποιοδήποτε ή όλα τα ακόλουθα συμπτώματα:
-
Ο ταυτόχρονος φόρτος εργασίας, (άλλα ερωτήματα που εκτελούνται ταυτόχρονα στο διακομιστή ως αυτό το ερώτημα), ενδέχεται να αντιμετωπίσετε μείωση των επιδόσεων και απώλεια της ταχύτητας μετάδοσης.
-
Ενδέχεται να δείτε διαλείπουσα υψηλή χρήση της CPU.
-
Εάν υποβάλετε ερώτημα sys.dm_os_ring_buffers και προβάλετε τις καταχωρήσεις τύπου SchedulerMonitor , μπορείτε να εντοπίσετε περιοδικά τα μηνύματα "μη δώσουν Scheduler" που καταγράφονται κατά τη στιγμή της εκτέλεσης αυτού του ερωτήματος.
-
Ενδέχεται να εμφανιστεί ένα σφάλμα μη απόδοσης χρονοδιαγράμματος στο αρχείο καταγραφής σφαλμάτων και μπορεί να δημιουργηθεί ένα αρχείο ένδειξης σφαλμάτων μνήμης.
Επίλυση
Το πρόβλημα διορθώθηκε για πρώτη φορά με την ακόλουθη αθροιστική ενημέρωση του SQL Server:
Κάθε νέα αθροιστική ενημέρωση για τον SQL Server περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις επιδιορθώσεις ασφαλείας που συμπεριλήφθηκαν στην προηγούμενη αθροιστική ενημέρωση. Συνιστούμε να κάνετε λήψη και εγκατάσταση των πιο πρόσφατων αθροιστικών ενημερώσεων για τον SQL Server:
Περισσότερες πληροφορίες
Επιδιόρθωση λεπτομερειώνΟι εργαζόμενοι που επεξεργάζονται τα τμήματα στηλών (αποσυμπίεση και σάρωση για κατατακτήριες γραμμές) που χρησιμοποιούνται για την "απόδοση" της χρήσης CPU σε άλλους εργαζομένους/ταυτόχρονες εκτελέσεις ερωτημάτων όταν ένας συγκεκριμένος αριθμός ορίου γραμμών ήταν έξοδος. Όταν ο όρος WHERE ήταν ιδιαίτερα επιλεκτικός ώστε να παράγει λίγες γραμμές, οι εργαζόμενοι που επεξεργάζονται αυτό το ερώτημα επεξεργάστηκαν ασυμπίεστο και μεγάλο αριθμό τμημάτων (επειδή πολύ λίγες γραμμές είναι επιλέξιμες) πριν να εγκαταλείψουν τον επεξεργαστή με τρόπο συνεργασίας για τους άλλους εργαζομένους για την επεξεργασία του φόρτου εργασίας τους. Αυτό οδήγησε σε μη κανονική χρήση της CPU και υποβάθμιση της απόδοσης για τον ταυτόχρονο φόρτο εργασίας. Η επιδιόρθωση βελτιστοποιεί και βελτιώνει τον αλγόριθμο κοινής χρήσης CPU για τέτοια columnstore ερωτήματα.
Αναφορές
Μάθετε περισσότερα σχετικά με την ορολογία που χρησιμοποιεί η Microsoft για την περιγραφή ενημερώσεων λογισμικού.