ΕΠΙΔΙΌΡΘΩΣΗ: Κακή απόδοση κατά τη χρήση μεταβλητών πίνακα σε SQL Server 2012 ή 2014 διακομιστή SQL

ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο έχει μεταφραστεί χρησιμοποιώντας λογισμικό μηχανικής μετάφρασης της Microsoft και μπορείτε να το διορθώσετε χρησιμοποιώντας την τεχνολογία Community Translation Framework (CTF) (Πλαίσιο μετάφρασης κοινότητας). Η Microsoft παρέχει μηχανική μετάφραση, επεξεργασία μετά τη μηχανική μετάφραση από την κοινότητα και άρθρα μεταφρασμένα από επαγγελματίες προκειμένου να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής βάσης σε πολλές γλώσσες. Τα άρθρα μηχανικής μετάφρασης και αυτά που επεξεργάζονται ύστερα από μηχανική μετάφραση ενδέχεται να περιέχουν σφάλματα στο λεξιλόγιο, στη σύνταξη ή/και στη γραμματική. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες μας. Για περισσότερες πληροφορίες σχετικά με το CTF, μεταβείτε στην τοποθεσία http://support.microsoft.com/gp/machine-translation-corrections/el.

Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη: 2952444
Συμπτώματα
Όταν συμπληρώσετε μια μεταβλητή πίνακα με πολλές γραμμές και, στη συνέχεια, να το συνδέσετε με άλλους πίνακες, η βελτιστοποίηση ερωτήματος μπορεί να επιλέξει ένα σχέδιο αναποτελεσματική ερώτημα, το οποίο μπορεί να οδηγήσει σε χαμηλές επιδόσεις του ερωτήματος.
Προτεινόμενη αντιμετώπιση
Μετά την εφαρμογή αυτής της επείγουσας επιδιόρθωσης, μπορείτε να ενεργοποιήσετε τη σημαία παρακολούθησης 2453 για να επιτρέψετε μια μεταβλητή πίνακα για να ενεργοποιήσετε μεταγλωττίστε όταν αλλάζουν επαρκή αριθμό γραμμών. Αυτό μπορεί να επιτρέψει τη βελτιστοποίηση ερωτήματος για να επιλέξετε ένα σχέδιο πιο αποτελεσματική.

Το ζήτημα επιδιορθώθηκε για πρώτη φορά στην παρακάτω αθροιστική ενημερωμένη έκδοση ή / και τα Service Pack για τον SQL Server.

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

Σχετικά με τις αθροιστικές ενημερωμένες εκδόσεις για τον SQL Server

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

Το Service pack 2 για SQL Server 2012

Σχετικά με τα Service Pack για τον SQL Server

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

Περισσότερες πληροφορίες
Όταν χρησιμοποιείτε μια μεταβλητή πίνακα σε μια δέσμη ή τη διαδικασία, το ερώτημα είναι μεταγλωττίζονται και θα βελτιστοποιηθεί για την αρχική κατάσταση κενό πίνακα μεταβλητής. Εάν αυτή η μεταβλητή πίνακα συμπληρώνεται με τον αριθμό των γραμμών κατά το χρόνο εκτέλεσης, το σχέδιο προ-μεταγλωττισμένο ερώτημα μπορεί να είναι πλέον βέλτιστη. Για παράδειγμα, το ερώτημα ενδέχεται να συνδέει μια μεταβλητή πίνακα με ένθετες θηλιά δεδομένου ότι είναι συνήθως πιο αποτελεσματικό για μικρό αριθμό γραμμών. Αυτό το σχέδιο ερωτήματος μπορεί να είναι αποτελεσματική, εάν η μεταβλητή πίνακα έχει εκατομμύρια γραμμές. Ένας σύνδεσμος κατακερματισμού μπορεί να είναι καλύτερη επιλογή υπό τέτοιες συνθήκες. Για να λάβετε ένα νέο σχέδιο ερωτήματος, πρέπει να μεταγλωττιστούν ξανά. Αντίθετα από άλλο χρήστη ή προσωρινούς πίνακες, ωστόσο, αλλαγή πλήθος γραμμών σε μια μεταβλητή πίνακα δεν προκαλεί μια μεταγλωττίστε ερωτήματος. Συνήθως, μπορείτε να εργαστείτε γύρω από αυτό, με την ΕΠΙΛΟΓΉ (ΜΕΤΑΓΛΩΤΤΊΣΤΕ), που έχει το δικό του κόστος ΓΒΕ.
Η σημαία παρακολούθησης 2453 επιτρέπει το ευεργέτημα της μεταγλωττίστε ερωτήματος χωρίς ΕΠΙΛΟΓΉ (ΜΕΤΑΓΛΩΤΤΊΣΤΕ). Αυτή η σημαία παρακολούθησης διαφέρει από την ΕΠΙΛΟΓΉ (ΜΕΤΑΓΛΩΤΤΊΣΤΕ) σε δύο κύριες πτυχές.
(1) χρησιμοποιεί το ίδιο όριο πλήθος γραμμών όπως άλλους πίνακες. Το ερώτημα δεν πρέπει να καταρτίζονται για κάθε εκτέλεση σε αντίθεση με την ΕΠΙΛΟΓΉ (ΜΕΤΑΓΛΩΤΤΊΣΤΕ). Αυτό θα ενεργοποιήσει μεταγλωττίστε μόνο κατά την αλλαγή του πλήθους γραμμών υπερβαίνει το προκαθορισμένο όριο.
(2) (ΜΕΤΑΓΛΩΤΤΊΣΤΕ) αναγκάζει να peek παραμέτρους και να βελτιστοποιήσετε το ερώτημα για το ερώτημα. Αυτήν τη σημαία παρακολούθησης δεν επιβάλλει την παράμετρο Παρατήρηση.

Σημειώστε αυτήν τη σημαία παρακολούθησης πρέπει να είναι ON κατά το χρόνο εκτέλεσης. Δεν μπορείτε να χρησιμοποιήσετε αυτήν τη σημαία παρακολούθησης με QUERYTRACEON. Αυτήν τη σημαία παρακολούθησης πρέπει να χρησιμοποιείται με προσοχή, επειδή ο αριθμός των ερωτημάτων μεταγλώττιση που θα μπορούσε να κοστίζουν περισσότερο από εξοικονόμηση από καλύτερη βελτιστοποίηση ερωτήματος μπορεί να αυξηθεί.
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα των προϊόντων της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".

Προειδοποίηση: Αυτό το άρθρο έχει μεταφραστεί αυτόματα

Ιδιότητες

Αναγνωριστικό άρθρου: 2952444 - Τελευταία αναθεώρηση: 02/22/2016 06:53:00 - Αναθεώρηση: 3.0

Microsoft SQL Server 2012 Service Pack 2, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Standard

  • kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB2952444 KbMtel
Σχόλια