KB974006-SQL Server Query Optimizer hotfix Trace Flag 4199 μοντέλο συντήρησης

ΕΙΣΑΓΩΓΗ

Οι εκδόσεις του Microsoft SQL Server που είναι νεότερες από τον SQL Server 2000 Service Pack 3 (SP3) παραδίδουν τις περισσότερες επείγουσες επιδιορθώσεις στη βελτιστοποίηση ερωτημάτων σε μια κατάσταση "εκτός από προεπιλογή", ώστε να μην μπορούν οι υπάρχοντες πελάτες παραγωγής να βλέπουν τις αναμενόμενες αλλαγές στο πρόγραμμα, οι οποίες μπορεί να προκαλέσουν παλινδρόμηση επιδόσεων. Αρχικά, κάθε επείγουσα επιδιόρθωση παραδόθηκε κάτω από μια ξεχωριστή σημαία παρακολούθησης. Αργότερα, αυτή η πρακτική έχει αλλάξει, ώστε οι περισσότερες σημαίες να συνδυάζονται σε μία σημαία ανίχνευσης (4199). Αυτή η νέα πρακτική ξεκίνησε σε πολλές εκδόσεις, ξεκινώντας από τις ακόλουθες ενημερώσεις:

  • Αθροιστική ενημερωμένη έκδοση 6 του SQL Server 2005 Service Pack 3 (SP3)

  • Πακέτο αθροιστικών ενημερώσεων 7 του SQL Server 2008 Service Pack 1 (SP1)

  • SQL Server 2008 R2 (RTM)

Η σημαία παρακολούθησης 4199 χρησιμοποιήθηκε για τη συλλογή επειγουσών επιδιορθώσεων που προορίζονταν να γίνουν στο μέλλον σε μια μελλοντική έκδοση, ενώ άλλες σημαίες ανίχνευσης χρησιμοποιήθηκαν για περιπτώσεις στις οποίες μια επιδιόρθωση δεν είχε σκοπό να γίνει από προεπιλογή στην τρέχουσα φόρμα. Ξεκινώντας με τον SQL Server 2016 RTM, η ρύθμιση COMPATIBILITY_LEVEL βάσης δεδομένων θα χρησιμοποιηθεί για την ενεργοποίηση από προεπιλογή των επειγουσών επιδιορθώσεων που σχετίζονται με τη σημαία παρακολούθησης 4199. Σε αυτό το άρθρο περιγράφονται οι μηχανικοί και η πολιτική για τον τρόπο με τον οποίο θα παραδίδονται οι επείγουσες επιδιορθώσεις του προγράμματος για τον SQL Server 2016 και νεότερες εκδόσεις.

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

Στον SQL Server 2016, η σημαία παρακολούθησης 4199 επείγουσες επιδιορθώσεις που έχουν γίνει σε προηγούμενες εκδόσεις του SQL Server θα ενεργοποιηθεί στην περιοχή βάση δεδομένων COMPATIBILITY_LEVEL 130 χωρίς τη σημαία παρακολούθησης 4199 ενεργοποιημένη. Η σημαία παρακολούθησης 4199 θα χρησιμοποιηθεί για την κυκλοφορία τυχόν μελλοντικών επειγουσών επιδιορθώσεων του SQL Server 2016 για βάσεις δεδομένων, χρησιμοποιώντας το επίπεδο συμβατότητας του 130. Επειδή η σημαία παρακολούθησης 4199 συνιστάται μόνο για τους πελάτες που αντιμετωπίζουν συγκεκριμένα προβλήματα επιδόσεων, συνιστάται στους πελάτες να αφαιρέσουν τη σημαία παρακολούθησης 4199 μετά τη μετεγκατάσταση των βάσεων δεδομένων τους στο πιο πρόσφατο επίπεδο συμβατότητας, επειδή η σημαία παρακολούθησης 4199 θα χρησιμοποιηθεί ξανά για μελλοντικές επιδιορθώσεις που μπορεί να μην ισχύουν για την εφαρμογή σας και μπορεί να προκαλέσουν μη αναμενόμενες αλλαγές στις επιδόσεις του σχεδίου σε ένα σύστημα παραγωγής. Αυτό σημαίνει ότι οι επείγουσες επιδιορθώσεις διαφορετικής σημαίας παρακολούθησης 4199 είναι ενεργοποιημένες για κάθε επίπεδο συμβατότητας που υποστηρίζεται σε μια δεδομένη έκδοση προϊόντος. Τοτελευταίο επίπεδο συμβατότητας του T έχει ήδη ενεργοποιήσει όλες τις προηγούμενες επιδιορθώσεις στην περιοχή παρακολούθηση σημαίας 4199. Αυτό σημαίνει ότι η αναβάθμιση μιας βάσης δεδομένων στο πιο πρόσφατο επίπεδο συμβατότητας και η κατάργηση της σημαίας παρακολούθησης 4199 εξακολουθεί να επιτρέπει σε όλες τις επιδιορθώσεις ότι ο φόρτος εργασίας ήταν μόχλευση πριν από την αναβάθμιση της βάσης δεδομένων, απλώς όχι νέες διορθώσεις. Εάν σε μεταγενέστερο χρόνο οι πελάτες αντιμετωπίσουν προβλήματα απόδοσης ερωτημάτων, πειραματιστείτε με την ενεργοποίηση της επιλογής εύρους δεδομένων QUERY_OPTIMIZER_HOTFIXES ή την υπόδειξη ερωτήματος ENABLE_QUERY_OPTIMIZER_HOTFIXES σε ένα περιβάλλον ελέγχου για να προσδιορίσετε εάν τα προβλήματα έχουν επιλυθεί. Ανατρέξτε στην τεκμηρίωση σχετικά με το QUERY_OPTIMIZER_HOTFIXES

Σημείωση Από προεπιλογή, οι βάσεις δεδομένων που δημιουργούνται στον SQL Server 2016 χρησιμοποιούν το επίπεδο συμβατότητας 130 και έχουν ήδη ενεργοποιήσει τη νέα λογική βελτιστοποίησης. Το κύριο πλεονέκτημα αυτού του μοντέλου είναι ότι μειώνει τον κίνδυνο για τα συστήματα παραγωγής κατά τη διαδικασία αναβάθμισης. Αυτή η προσέγγιση διαχωρίζει την εγκατάσταση μιας νέας κύριας έκδοσης του SQL Server από την αυτόματη ενεργοποίηση όλων των νέων αλλαγών του επεξεργαστή ερωτημάτων. Επειδή οι αναβαθμίσεις κύριας έκδοσης αλλάζουν τη μορφή αρχείου και δεν είναι αναστρέψιμη, είναι καλή ιδέα να χρησιμοποιήσετε τη ρύθμιση COMPATIBILITY_LEVEL, επειδή αυτό δίνει τη δυνατότητα σε έναν πελάτη να κάνει γρήγορα υποβάθμιση εάν βρεθεί ένα μη αναμενόμενο πρόβλημα επιδόσεων προγράμματος κατά τη διάρκεια μιας αναβάθμισης. Εάν ένας πελάτης εντοπίσει μια μη αναμενόμενη αλλαγή σχεδίου που αποκλείει μια αναβάθμιση εφαρμογής, ο πελάτης μπορεί να διευκολύνει την κατάσταση εφαρμόζοντας μια κατάλληλη υπόδειξη σχεδίου χρησιμοποιώντας το χώρο αποθήκευσης ερωτημάτων για να επιβάλλει το προηγούμενο σχέδιο ή μπορεί να διευκολύνει την κατάσταση επικοινωνώντας με την υποστήριξη πελατών της Microsoft για να σας βοηθήσει με το πρόβλημα για να παρέχετε μια λύση ή μια επείγουσα επιδιόρθωση. Όταν όλα τα προβλήματα μειώνονται, η αναβάθμιση μπορεί να συνεχιστεί. Οι πελάτες πρέπει να ενσωματώσουν αυτήν τη δυνατότητα στον προγραμματισμό αναβάθμισης για τον SQL Server 2016. Ο παρακάτω πίνακας εξηγεί το μοντέλο για τον τρόπο με τον οποίο θα λειτουργεί η σημαία παρακολούθησης 4199 ξεκινώντας με τον SQL Server 2016.

Ρύθμιση

Επίπεδο συμβατότητας SQL

Σημαία ανίχνευσης 4199

Βελτιστοποίηση επειγουσών επιδιορθώσεων πριν από τον SQL Server 2016 RTM

Βελτιστοποίηση επειγουσών επιδιορθώσεων μετά τον SQL Server 2016 RTM

1.

120

Απενεργοποίηση

Απενεργοποιημένη

Απενεργοποιημένη

2.

120

Στην

Δυνατότητα

Απενεργοποιημένη

3.

130

Απενεργοποίηση

Ενεργοποιημένο κατά επίπεδο συμβατότητας

Απενεργοποιημένη

4.

130

Στην

Ενεργοποιημένο κατά επίπεδο συμβατότητας

Ενεργοποιημένο κατά επίπεδο συμβατότητας

Σημείωση Για τους πελάτες που αναβαθμίζουν πρόσφατα τον SQL Server 2016, συνιστάται η ρύθμιση No. 3. Για σημαντικές εκδόσεις μετά τον SQL Server 2016, η Microsoft σχεδιάζει να συνεχίσει να χρησιμοποιεί αυτό το μοντέλο συντήρησης για τις επείγουσες επιδιορθώσεις του Optimizer. Από προεπιλογή ή κάθε κυκλοφορία, οποιαδήποτε σημαία ανίχνευσης 4199 επείγουσες επιδιορθώσεις από την προηγούμενη κυκλοφορία θα ενεργοποιηθεί στο επόμενο επίπεδο συμβατότητας. Αυτό σημαίνει ότι η συνιστώμενη κατάσταση για τους πελάτες μετά τη μετεγκατάσταση στο πιο πρόσφατο επίπεδο συμβατότητας θα είναι ότι έχει απενεργοποιηθεί η σημαία παρακολούθησης 4199. Νεότερες επείγουσες επιδιορθώσεις θα χρησιμοποιούσε τη σημαία ανίχνευσης 4199 για να ενεργοποιήσει τις επιδιορθώσεις για τους πελάτες που πρέπει να ενεργοποιήσουν αυτές τις συγκεκριμένες επείγουσες επιδιορθώσεις σε μια εφαρμογή Συνιστάται στους πελάτες να απενεργοποιούν τη σημαία παρακολούθησης 4199 μετά την αναβάθμιση μιας εφαρμογής στο πιο πρόσφατο επίπεδο συμβατότητας, ώστε να αποφεύγεται η απροσδόκητη αλλαγή της μελλοντικής μελλοντικής βελτιστοποίησης σε μια εφαρμογή. Αυτή η αναβάθμιση στο πιο πρόσφατο επίπεδο συμβατότητας και η κατάργηση της σημαίας παρακολούθησης 4199 εξακολουθεί να επιτρέπει σε όλες τις επιδιορθώσεις ότι ο φόρτος εργασίας ήταν μόχλευση πριν από την αναβάθμιση, απλώς όχι νέες διορθώσεις.

Σημείωση Ενώ πολλές επείγουσες επιδιορθώσεις του Optimizer είναι ενεργοποιημένες στην περιοχή σημαία ανίχνευσης 4199, ορισμένες χρησιμοποιούν άλλες σημαίες ανίχνευσης. Σημαία παρακολούθησης 4199 ιστορικά καλυμμένες σημαίες ανίχνευσης που ισχύουν ευρέως και ενδέχεται να ενεργοποιηθούν από προεπιλογή σε μια μελλοντική έκδοση. Οι εναλλακτικές σημαίες ανίχνευσης χρησιμοποιούνται στις επείγουσες επιδιορθώσεις όπου οι συνθήκες είναι πολύ συγκεκριμένες μόνο για λίγους πελάτες, όπου η επιδιόρθωση μπορεί να προκαλέσει παλινδρόμηση επιδόσεων σε άλλα είδη εφαρμογών ή όπου η εσωτερική λειτουργικότητα μπορεί να δει τις αλλαγές πριν να είναι έτοιμη να ενεργοποιηθεί για όλους. Η Microsoft θα συνεχίσει να χρησιμοποιεί άλλες σημαίες ανίχνευσης, όπως απαιτείται για την εξυπηρέτηση του προϊόντος. Σημείωση Αυτό το άρθρο επικεντρώνεται στο μοντέλο για την αποδέσμευση της σημαίας παρακολούθησης 4199 επειγουσών επιδιορθώσεων στο πιο πρόσφατο επίπεδο συμβατότητας του πιο πρόσφατου προϊόντος. (Κατά τη διάρκεια της δημοσίευσης, αυτός είναι ο SQL Server 2016.) Βελτιστοποίηση επειγουσών επιδιορθώσεων μπορεί να κυκλοφορήσει σε παλαιότερες εκδόσεις στην αγορά του SQL Server ή σε χαμηλότερα επίπεδα συμβατότητας (120 ή πριν) του SQL Server 2016. Η Microsoft θα αξιολογεί κάθε υπόθεση και θα προσδιορίζει εάν θα χρησιμοποιείται η σημαία παρακολούθησης 4199 ή μια διαφορετική σημαία παρακολούθησης. Επειδή οι αλλαγές που δεν σχετίζονται με την επείγουσα επιδιόρθωση ενεργοποιούνται επίσης όταν γίνεται μια μετακίνηση σε ένα μεταγενέστερο επίπεδο συμβατότητας, δεν υπάρχει συγκεκριμένη υπόσχεση ότι δεν θα προκύψουν αλλαγές στο πρόγραμμα κατά τη διάρκεια μιας αναβάθμισης (με ή χωρίς σημαία ανίχνευσης 4199). Οι πελάτες θα πρέπει πάντα να εξετάζουν προσεκτικά τις αλλαγές στο επίπεδο συμβατότητας για τις εφαρμογές παραγωγής και να χρησιμοποιούν τεχνολογίες μετριασμού, όπως το χώρο αποθήκευσης ερωτημάτων, εάν υπάρχει θέμα επιδόσεων που σχετίζεται με την επιλογή προγράμματος. Για αναφορά, ο παρακάτω πίνακας παραθέτει τις σημαίες ανίχνευσης που χρησιμοποιήθηκαν για τις επείγουσες επιδιορθώσεις του προγράμματος επεξεργασίας ερωτημάτων πριν από την εισαγωγή της σημαίας παρακολούθησης 4199.

Άρθρο της Γνωσιακής Βάσης της Microsoft

Σημαία παρακολούθησης

318530

4101

940128

4102

919905

4103

920346

4104

920347

4105

922438

4106

923849

4107

926024

4108

926773

4109

933724

4110

934065

4111

946793

4115

950880

4116

948445

4117

942659

4119

953948

4120

942444

4121

946020

4122

948248

4124

949854

4125

959013

4126

953569

4127

955694 957872

4128

958547

4129

956686

4131

958006

4133

960770

4135*

SQL Server 2005

Η επιδιόρθωση για αυτό το πρόβλημα κυκλοφόρησε για πρώτη φορά στην αθροιστική ενημερωμένη έκδοση 6 για τον SQL Server 2005 Service Pack 3. Για περισσότερες πληροφορίες σχετικά με αυτό το πακέτο αθροιστικής ενημερωμένης έκδοσης, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

974648 Πακέτο αθροιστικών ενημερώσεων 6 για τον SQL Server 2005 Service Pack 3Σημείωση Επειδή το build που είναι αθροιστικές, κάθε νέα έκδοση της ενημέρωσης κώδικα περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερώσεις κώδικα ασφαλείας που συμπεριλήφθηκαν με την προηγούμενη SQL Server 2005 έκδοση της ενημέρωσης κώδικα. Συνιστάται να εξετάσετε την εφαρμογή της πιο πρόσφατης έκδοσης της ενημέρωσης κώδικα που περιέχει αυτήν την επείγουσα επιδιόρθωση. Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για προβολή του άρθρου στη Γνωσιακή Βάση της Microsoft:

960598 Ο SQL Server 2005 δημιουργεί τα οποία κυκλοφόρησαν μετά την κυκλοφορία του SQL Server 2005 Service Pack 3Οι επείγουσες επιδιορθώσεις του Microsoft SQL Server 2005 δημιουργούνται για συγκεκριμένα Service Pack του SQL Server. Πρέπει να εφαρμόσετε μια επείγουσα επιδιόρθωση του SQL Server 2005 Service Pack 3 σε μια εγκατάσταση του SQL Server 2005 Service Pack 3. Από προεπιλογή, οποιαδήποτε επείγουσα επιδιόρθωση που παρέχεται σε ένα Service Pack του SQL Server περιλαμβάνεται στο επόμενο Service Pack του SQL Server.

SQL Server 2008

Η επιδιόρθωση για αυτό το πρόβλημα κυκλοφόρησε πρώτα στην αθροιστική ενημερωμένη έκδοση 7. Για περισσότερες πληροφορίες σχετικά με τον τρόπο απόκτησης αυτού του πακέτου αθροιστικής ενημερωμένης έκδοσης για τον SQL Server 2008, κάντε κλικ στον αριθμό του άρθρου παρακάτω για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

973601 Πακέτο αθροιστικών ενημερώσεων 7 για τον SQL Server 2008Σημείωση Επειδή το build που είναι αθροιστικές, κάθε νέα έκδοση της ενημέρωσης κώδικα περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερώσεις κώδικα ασφαλείας που συμπεριλήφθηκαν με την προηγούμενη SQL Server 2008 έκδοση της ενημέρωσης κώδικα. Συνιστάται να εξετάσετε την εφαρμογή της πιο πρόσφατης έκδοσης της ενημέρωσης κώδικα που περιέχει αυτήν την επείγουσα επιδιόρθωση. Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για προβολή του άρθρου στη Γνωσιακή Βάση της Microsoft:

956909 Ο SQL Server 2008 δημιουργεί τα οποία κυκλοφόρησαν μετά την κυκλοφορία του SQL Server 2008

SQL Server 2008 SP1

Η επιδιόρθωση για αυτό το πρόβλημα κυκλοφόρησε για πρώτη φορά στην αθροιστική ενημερωμένη έκδοση 7 για τον SQL Server 2008 Service Pack 1. Για περισσότερες πληροφορίες σχετικά με αυτό το πακέτο αθροιστικής ενημερωμένης έκδοσης, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

979065 Πακέτο αθροιστικών ενημερώσεων 7 για τον SQL Server 2008 Service Pack 1Σημείωση Επειδή το build που είναι αθροιστικές, κάθε νέα έκδοση της ενημέρωσης κώδικα περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερώσεις κώδικα ασφαλείας που συμπεριλήφθηκαν με την προηγούμενη SQL Server 2008 έκδοση της ενημέρωσης κώδικα. Συνιστάται να εξετάσετε την εφαρμογή της πιο πρόσφατης έκδοσης της ενημέρωσης κώδικα που περιέχει αυτήν την επείγουσα επιδιόρθωση. Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για προβολή του άρθρου στη Γνωσιακή Βάση της Microsoft:

970365 Ο SQL Server 2008 δημιουργεί τα οποία κυκλοφόρησαν μετά την κυκλοφορία του SQL Server 2008 Service Pack 1Οι επείγουσες επιδιορθώσεις του Microsoft SQL Server 2008 δημιουργούνται για συγκεκριμένα Service Pack του SQL Server. Πρέπει να εφαρμόσετε μια επείγουσα επιδιόρθωση του SQL Server 2008 Service Pack 1 σε μια εγκατάσταση του SQL Server 2008 Service Pack 1. Από προεπιλογή, οποιαδήποτε επείγουσα επιδιόρθωση που παρέχεται σε ένα Service Pack του SQL Server περιλαμβάνεται στο επόμενο Service Pack του SQL Server.

SQL Server 2008 R2

Στην έκδοση του SQL Server 2008 R2, η σημαία ανίχνευσης 4135 παρέλειψε ακούσια από τη λίστα των σημαιών ανίχνευσης που μπορούν να ελεγχθούν από-T4199. Ωστόσο, αυτό διορθώθηκε στην αθροιστική ενημερωμένη έκδοση 1 για τον SQL Server 2008 R2. Έτσι, για αυτήν τη δομή και για τις υποστηριζόμενες εκδόσεις του SQL Server 2005 και του SQL Server 2008, το T4199 θα επαρκεί για να ενεργοποιήσει αυτή και άλλες σημαίες ανίχνευσης που παρατίθενται σε αυτό το άρθρο.

SQL Server 2012 και νεότερες εκδόσεις

Η σημαία παρακολούθησης 4199 περιλαμβάνεται στις εκδόσεις έκδοσης του SQL Server 2012 και των νεότερων εκδόσεων.

Τρόπος ενεργοποίησης της σημαίας παρακολούθησης 4199

Μπορείτε να ενεργοποιήσετε τη σημαία ανίχνευσης 4199 κατά την εκκίνηση ή σε μια περίοδο λειτουργίας χρήστη. Αυτή η σημαία παρακολούθησης έχει εφέ καθολικού επιπέδου ή επιπέδου περιόδου λειτουργίας. Για να ενεργοποιήσετε τη σημαία ανίχνευσης 4199, χρησιμοποιήστε την εντολή DBCC TRACEON ή χρησιμοποιήστε την εντολή – T 4199 ως παράμετρο εκκίνησης. Εάν το DBCC TRACEON\TRACEOFF χρησιμοποιείται, αυτό δεν δημιουργεί ξανά ένα νέο πρόγραμμα προσωρινής αποθήκευσης για αποθηκευμένες διαδικασίες. Τα προγράμματα μπορεί να βρίσκονται στο cache που δημιουργήθηκαν χωρίς τη σημαία παρακολούθησης. Για λεπτομερείς πληροφορίες σχετικά με τον τρόπο ενεργοποίησης ή απενεργοποίησης των σημαιών ανίχνευσης και για επεξηγήσεις των καθολικών και των σημαιών ανίχνευσης σε επίπεδο περιόδου λειτουργίας, ανατρέξτε στα παρακάτω θέματα στα SQL Server Books Online:

Αναφορές

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

822499 Νέα διάταξη ονομασίας για τα πακέτα ενημερώσεων λογισμικού του Microsoft SQL Server Για περισσότερες πληροφορίες σχετικά με την ορολογία ενημερώσεων λογισμικού, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

824684 Περιγραφή της βασικής ορολογίας που χρησιμοποιείται για την περιγραφή ενημερώσεων λογισμικού της Microsoft

Χρειάζεστε περισσότερη βοήθεια;

Αναπτύξτε τις δεξιότητές σας
Εξερευνήστε το περιεχόμενο της εκπαίδευσης
Αποκτήστε πρώτοι τις νέες δυνατότητες
Συμμετοχή στο Microsoft Insider

Σας βοήθησαν αυτές οι πληροφορίες;

Σας ευχαριστούμε για τα σχόλιά σας!

Σας ευχαριστούμε για τα σχόλιά σας! Φαίνεται ότι μπορεί να είναι χρήσιμο να συνδεθείτε με έναν από τους συνεργάτες υποστήριξης του Office.

×