Συμπτώματα
Εξετάστε το ακόλουθο σενάριο:
-
Χρησιμοποιείτε μια βάση δεδομένων με το επίπεδο συμβατότητας να έχει οριστεί σε 130 στη Microsoft SQL Server 2016.
-
Εκτελείτε ένα ερώτημα που αποκτά πρόσβαση σε ένα ευρετήριο αποθήκευσης στηλών και σε ένα ευρετήριο αποθήκευσης γραμμών ή σε ένα σωρό και περιλαμβάνει ένα predicate φίλτρου (όρος WHERE).
Σε αυτό το σενάριο, SQL Server δεν θα είναι σε θέση να ωθήσουν το predicate φίλτρου πιο κοντά στον τελεστή προέλευσης δεδομένων (σάρωση ή αναζήτηση πίνακα ή ευρετηρίου). Αυτό μπορεί να προκαλέσει επιδόσεις δευτερευόντων ερωτημάτων.
Επιπλέον, εάν το ερώτημα χρησιμοποιεί μια παράσταση (όπως μετατροπή τύπου) όπου η ορθότητα εξαρτάται από φιλτραρισμένα δεδομένα (για παράδειγμα, μια στήλη πίνακα χαρακτήρων μετατρέπεται σε int, αλλά μόνο ένα υποσύνολο τιμών περιέχει μια έγκυρη int αναπαράσταση και αυτό το υποσύνολο προσδιορίζεται από το κατεύθυνο φίλτρου), τότε το ερώτημα μπορεί να αποτύχει με ένα σφάλμα μετατροπής δεδομένων που μοιάζει με ένα από τα εξής:
Msg 245, Level 16, State 1, Line 20
Conversion failed when converting the varchar value '0.5' to data type int.
Msg 8114, Επίπεδο 16, Πολιτεία 5, Γραμμή 34
Σφάλμα μετατροπής τύπου δεδομένων varchar σε bigint.
Επίλυση
Αυτό το πρόβλημα έχει διορθωθεί στην ακόλουθη συγκεντρωτική ενημέρωση για SQL Server:
Αθροιστική ενημέρωση 2 για SQL Server 2016 SP1
Σημείωση Για να τεθεί σε ισχύ αυτή η επιδιόρθωση, πρέπει να ενεργοποιήσετε τις άμεσες επιδιορθώσεις βελτιστοποίησης ερωτημάτων.
Μπορείτε να ενεργοποιήσετε τις άμεσες επιδιορθώσεις βελτιστοποίησης ερωτήματος χρησιμοποιώντας μία από τις ακόλουθες επιλογές: ανίχνευση σημαίας 4199, ρύθμιση παραμέτρων εμβέλειας βάσης δεδομένων QUERY_OPTIMIZER_HOTFIXES=ON (διαθέσιμη στο SQL Server 2016 και νεότερες εκδόσεις) ή USE_HINT επιλογή ερωτήματος "ENABLE_QUERY_OPTIMIZER_HOTFIXES" (διαθέσιμη στα SQL Server 2016 SP1 και νεότερες εκδόσεις).
Κάθε νέα συγκεντρωτική ενημέρωση για SQL Server περιέχει όλες τις άμεσες επιδιορθώσεις και όλες τις επιδιορθώσεις ασφαλείας που περιλαμβάνονταν στην προηγούμενη συγκεντρωτική ενημέρωση. Δείτε τις πιο πρόσφατες συγκεντρωτικές ενημερώσεις για SQL Server:
Τελευταία συγκεντρωτική ενημέρωση για το SQL Server 2016
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για πρόβλημα στα προϊόντα της Microsoft που αναφέρονται στην ενότητα "Ισχύει για".
Αναφορές
Ενημερωθείτε σχετικά με την ορολογίαπου χρησιμοποιεί η Microsoft για την περιγραφή ενημερώσεων λογισμικού.