Συμπτώματα
Ας υποθέσουμε ότι δημιουργείτε μια εγγενώς μεταγλωττισμένη αποθηκευμένη διαδικασία με ένα ερώτημα που περιέχει μια μεγάλη παράσταση που έχει περισσότερους από 256 τελεστές στον Microsoft SQL Server 2014. Όταν προσπαθείτε να χρησιμοποιήσετε το showplan_xml στο ερώτημα ή τη διαδικασία, λαμβάνετε το ακόλουθο σφάλμα:
MSG 41322, επίπεδο 16, κατάσταση 33, διαδικασία <sp_name>, Line <line_number>Mat/pit Export/Import αντιμετώπισε αποτυχία για τον πίνακα βελτιστοποιημένο για μνήμη ή μεταγλωττισμένη εγγενώς αποθηκευμένη διαδικασία με αναγνωριστικό αντικειμένου <αναγνωριστικό αριθμό >στο αναγνωριστικό βάσης δεδομένων<αναγνωριστικό αριθμό>. Ο κωδικός σφάλματος ήταν 0x88000015.
Αιτία
Το πρόβλημα παρουσιάζεται εξαιτίας ενός ελαττώματος στον SQL Server 2014.
Επίλυση
Μετά την εφαρμογή της επείγουσας επιδιόρθωσης, το showplan_xml θα επιτύχει για εγγενή διαδικασία που έχει μεγάλο αριθμό τελεστών. Το πρόβλημα διορθώθηκε για πρώτη φορά με την ακόλουθη αθροιστική ενημέρωση του SQL Server.
Αθροιστική ενημερωμένη έκδοση 1 για τον SQL Server 2014 /en-us/help/2931693
Κάθε νέα αθροιστική ενημέρωση για τον SQL Server περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις επιδιορθώσεις ασφαλείας που συμπεριλήφθηκαν στην προηγούμενη αθροιστική ενημέρωση. Ανάληψη ελέγχου των πιο πρόσφατων αθροιστικών ενημερώσεων για τον SQL Server:
Λύση
Για να επιλύσετε αυτό το ζήτημα, χρησιμοποιήστε τις παρακάτω λύσεις:
-
Διασπάσετε τις παραστάσεις σε πολλές δευτερεύουσες παραστάσεις.
-
Χρησιμοποιήστε παρενθέσεις για να επιβάλετε ρητά την ένθεση των παραστάσεων για να δημιουργήσετε ένα μεγάλο αλλά ρηχό δέντρο έκφρασης αντί για ένα δένδρο με βαθιά ένθετη παράσταση.
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα πρόβλημα στα προϊόντα της Microsoft που παρατίθενται στην ενότητα "ισχύει για".