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