KB4023419 - ΕΠΙΔΙΟΡΘΩΣΗ: Το ερώτημα με την επιλογή UNION ALL και έναν στόχο γραμμής μπορεί να εκτελείται πιο αργά στο SQL Server 2014 ή σε νεότερες εκδόσεις σε σύγκριση με το SQL Server 2008 R2

Ισχύει για
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Service Pack 2 - duplicate (do not use) 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 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1

Συμπτώματα

Όταν υποβάλλετε ερώτημα για μια προβολή στο Microsoft SQL Server 2014 ή 2016, ενδέχεται να χρειαστεί πολύ περισσότερος χρόνος για να ολοκληρωθεί, εάν τη συγκρίνετε με την εκτέλεση στο SQL Server 2008 R2.

Όταν εκτελείτε ένα ερώτημα που χρησιμοποιεί την επιλογή UNION ALL και ένα στόχο γραμμής (όπως ο όρος TOP N, το κατηγόρημα FAST N ή EXIST), ενδέχεται να παρατηρήσετε ότι το ερώτημα εκτελείται πιο αργά στο SQL Server 2014 ή σε νεότερες εκδόσεις, αν το συγκρίνετε με το SQL Server 2008 R2.

Αιτία

Στο SQL Server 2008 R2, ο μηχανισμός βελτιστοποίησης ερωτήματος αλλάζει τη σειρά των διαφόρων τμημάτων στην περιοχή UNION ALL εάν υπάρχει στόχος γραμμής, έτσι ώστε το φθηνότερο τμήμα να πηγαίνει πρώτο. Αυτό επιτρέπει στο ερώτημα να ολοκληρώσει την εκτέλεση νωρίτερα, εάν τα φθηνότερα εξαρτήματα παράγουν απαιτούμενο αριθμό γραμμών, χωρίς να συνεχίσει να εκτελεί ακριβότερα τμήματα. Τέτοια αναδιάταξη δεν συμβαίνει σε μεταγενέστερες εκδόσεις του SQL Server.

Επίλυση

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

Αθροιστική ενημερωμένη έκδοση 7 για SQL Server 2016 RTM

Αθροιστική ενημερωμένη έκδοση 4 για SQL Server 2016 SP1

Αθροιστική ενημερωμένη έκδοση 6 για SQL Server 2014 SP2

Σημείωση Η βελτιστοποίηση ερωτήματος πρέπει να είναι ενεργοποιημένη για αυτό το πρόβλημα.

Για περισσότερες πληροφορίες σχετικά με τον μηχανισμό βελτιστοποίησης ερωτήματος και τις σημαίες ανίχνευσης, ανατρέξτε στις ακόλουθες συνδέσεις:

Μοντέλο συντήρησης επείγουσας επιδιόρθωσης TF 4199 του SQL Server Query Optimizer

Εντολές κονσόλας DBCC και σημαίες ανίχνευσης

Πληροφορίες σχετικά με τις συγκεντρωτικές ενημερώσεις για SQL Server:

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

Τελευταία αθροιστική ενημέρωση για το SQL Server 2016

Τελευταία αθροιστική ενημερωμένη έκδοση για το SQL Server 2014

Κατάσταση

Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα που αφορά τα προϊόντα της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".

Παραπομπές

Ενημερωθείτε για την ορολογία που χρησιμοποιεί η Microsoft για να περιγράφει τις ενημερώσεις λογισμικού.