KB4051361 - Πληροφορίες στόχου γραμμής βελτιστοποίησης στο πρόγραμμα εκτέλεσης ερωτήματος που προστέθηκε στις SQL Server 2014, 2016 και 2017

Ισχύει για
SQL Server 2016 Standard - 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 2017 Developer SQL Server 2017 Enterprise SQL Server 2017 Enterprise Core 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)

Σύνοψη

Προσθέστε το νέο χαρακτηριστικό προγράμματος εκτέλεσης ερωτήματος EstimateRowsWithoutRowGoal SQL Server αθροιστική ενημερωμένη έκδοση 3 (CU3) και Microsoft SQL Server 2016 Service Pack 2 (SP2).

Όταν ο μηχανισμός βελτιστοποίησης ερωτήματος υπολογίζει το κόστος ενός προγράμματος εκτέλεσης ερωτήματος, συνήθως υποθέτει ότι όλες οι κατάλληλες γραμμές από όλες τις προελεύσεις πρέπει να υποβληθούν σε επεξεργασία. Ωστόσο, ορισμένα ερωτήματα προκαλούν την αναζήτηση του μηχανισμού βελτιστοποίησης ερωτήματος για ένα σχέδιο που θα επιστρέψει μικρότερο αριθμό γραμμών πιο γρήγορα. Αυτό μπορεί να συμβεί εάν το ερώτημα χρησιμοποιεί έναν όρο TOP , μια υπόδειξη ερωτήματος FAST number_rows , έναν όρο IN ή EXISTS ή μια πρόταση SET ROWCOUNT { αριθμός | @number\_var } . Σε αυτή την περίπτωση, η βελτιστοποίηση χρησιμοποιεί ένα στόχο γραμμής όταν υπολογίζει το σχέδιο ερωτήματος. Εάν εφαρμοστεί το σχέδιο στόχου γραμμής, μειώνεται ο εκτιμώμενος αριθμός γραμμών στο πρόγραμμα εκτέλεσης ερωτήματος. Αυτό συμβαίνει επειδή το σχέδιο υποθέτει ότι θα πρέπει να υποβληθεί σε επεξεργασία μικρότερος αριθμός γραμμών προκειμένου να επιτευχθεί ο στόχος γραμμής.

Σημείωση Η εκτίμηση που γίνεται με τη χρήση του στόχου γραμμής είναι κατά προσέγγιση. Εάν η πραγματική κατανομή των δεδομένων δεν είναι ομοιόμορφη, μπορεί να είναι μικρότερη από τον πραγματικό αριθμό των γραμμών που πρέπει να υποστούν επεξεργασία. Επομένως, θα μπορούσε να δημιουργήσει ένα αναποτελεσματικό σχέδιο ερωτημάτων. Ως λύση για αυτό το πρόβλημα, μπορείτε να χρησιμοποιήσετε την επιλογή ερωτήματος USE HINT ('DISABLE_OPTIMIZER_ROWGOAL') ή τη σημαία παρακολούθησης 4138.

Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Η ενημέρωση παρουσιάζει το όρισμα υπόδειξης ερωτήματος USE HINT στο SQL Server 2016. Ωστόσο, μπορεί να είναι δύσκολο να προσδιορίσετε σε σύνθετα ερωτήματα εάν έχει εφαρμοστεί ένας στόχος γραμμής και πόσο επηρεάζει την επιλογή σχεδίου.

Χρησιμοποιώντας το χαρακτηριστικό EstimateRowsWithoutRowGoal , μπορείτε να συγκρίνετε τα αποτελέσματα με αυτά του χαρακτηριστικού EstimateRows για να δείτε κατά πόσο ο στόχος γραμμής επηρεάζει τις εκτιμήσεις του μηχανισμού βελτιστοποίησης ερωτήματος.

Σημείωση Εάν ο στόχος γραμμής δεν έχει εφαρμοστεί σε ένα συγκεκριμένο τελεστή σχεδίου ερωτήματος, αυτό το χαρακτηριστικό δεν περιλαμβάνεται.

Περισσότερες πληροφορίες

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

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

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

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

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

Πληροφορίες Service Pack για SQL Server

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

Service Pack 2 για SQL Server 2016

Service Pack 3 για SQL Server 2014

Σχετικά με τα service pack για SQL Server:

Τα service pack είναι αθροιστικά. Κάθε νέο service pack περιέχει όλες τις ενημερώσεις κώδικα που βρίσκονται σε προηγούμενα service pack, μαζί με τυχόν νέες ενημερώσεις κώδικα. Η σύσταση μας είναι να εφαρμόσετε το πιο πρόσφατο service pack και την πιο πρόσφατη αθροιστική ενημέρωση για αυτό το service pack. Δεν χρειάζεται να εγκαταστήσετε ένα προηγούμενο service pack πριν να εγκαταστήσετε το πιο πρόσφατο service pack. Χρησιμοποιήστε τον Πίνακα 1 στο παρακάτω άρθρο για να βρείτε περισσότερες πληροφορίες σχετικά με το πιο πρόσφατο service pack και την πιο πρόσφατη αθροιστική ενημέρωση.

Πώς μπορείτε να καθορίσετε την έκδοση, την έκδοση και το επίπεδο ενημέρωσης του SQL Server και των στοιχείων του

Παραπομπές

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