Τα στατιστικά στοιχεία για τους δείκτες του SQL Server
Εάν θέλετε να έχετε τον απόλυτο έλεγχο για το πώς ενημερώνονται τα στατιστικά στοιχεία, πρέπει να χρησιμοποιήσετε το UPDATE ΣΤΑΤΙΣΤΙΚΑ δήλωση διαδικασία οποίου η σύνταξη είναι ως εξής
UPDATE ΣΤΑΤΙΣΤΙΚΑ table_or_indexed_view_name
[
{
Index_or_statistics__name {}
| ({Index_or_statistics_name} [, ... n])
}
]
[ΜΕ
[
[FULLSCAN]
| Αριθμός δείγματος {ΠΟΣΟΣΤΟ | Γραμμές}]
| Resample
|
[, ... N]
]
[[], [ALL | ΣΤΗΛΕΣ | Ευρετήριο]
[[,] NORECOMPUTE]
]?
Η διαδικασία αυτή σας επιτρέπει να καθορίσετε διάφορες επιλογές
-
FULLSCAN
Υπολογίστε στατιστικά στοιχεία από τη σάρωση όλων των γραμμών στον πίνακα ή προβολή με ευρετήριο.
FULLSCAN και ΔΕΙΓΜΑ 100 τοις εκατό να έχει τα ίδια αποτελέσματα.
Δεν μπορείτε να χρησιμοποιήσετε FULLSCAN με το δείγμα.
-
Αριθμός δείγματος {ΠΟΣΟΣΤΟ | Γραμμές}
Κατά προσέγγιση το ποσοστό ή αριθμός γραμμών στον πίνακα ή προσαρμόζονται optimizer ερώτημα προκειμένου να χρησιμοποιηθεί κατά την ενημέρωση των στατιστικών.
Για τοις εκατό, ο αριθμός μπορεί να είναι μεταξύ 0 και 100 για τις γραμμές, ο αριθμός μπορεί να είναι μεταξύ 0 και ο συνολικός αριθμός των γραμμών.
Το πραγματικό ποσοστό ή τον αριθμό των γραμμών του δείγματος από το optimizer ερώτημα δεν μπορεί να αντιστοιχεί στο ποσοστό ή αριθμό.
Για παράδειγμα, το ερώτημα optimizer αναλύει όλες τις γραμμές σε μια σελίδα δεδομένων.
-
ΔΕΙΓΜΑ
E 'χρήσιμο για ειδικές περιπτώσεις όπου το σχέδιο εκτέλεσης, με βάση τη δειγματοληψία προεπιλογή δεν είναι η βέλτιστη.
Στις περισσότερες περιπτώσεις, δεν είναι απαραίτητο να διευκρινιστεί ΔΕΙΓΜΑΤΟΣ επειδή ο optimizer ερώτημα χρησιμοποιεί δειγματοληψία.
Αυτή η επιλογή δεν μπορεί να χρησιμοποιηθεί κατά τον καθορισμό του FULLSCAN.
Εάν δεν καθορίσετε ούτε δείγματος ούτε FULLSCAN, ο optimizer ερώτημα χρησιμοποιεί δείγμα δεδομένων και υπολογίζει το μέγεθος του δείγματος από προεπιλογή.
Δεν συνιστούμε προσδιορίζοντας 0 τοις εκατό ή γραμμές 0.
Εάν καθορίσετε 0 τοις εκατό ή γραμμές, το αντικείμενο των στατιστικών έχει ενημερωθεί, αλλά δεν περιέχει στατιστικά δεδομένα.
-
Resample
Ενημέρωση κάθε στατιστικό στοιχείο χρησιμοποιώντας την πιο πρόσφατη δειγματοληψία.
Η χρήση του Resample μπορεί να οδηγήσει σε πλήρη πίνακα ανάλυσης.
Για στατιστικά στοιχεία σχετικά με δείκτες όπως χρησιμοποιείται για την ανάλυση του πίνακα πλήρους ποσοστού του δείγματος.
Εάν δεν ορίσετε καμία από τις επιλογές του δείγματος, ή του δείγματος, ή FULLSCAN Resample, το ερώτημα optimizer δείγματα τα δεδομένα και υπολογίζει το μέγεθος του δείγματος από προεπιλογή.
-
ΟΛΑ | ΣΤΗΛΕΣ | Δείκτης
Ενημερώστε όλα τα υπάρχοντα στατιστικά στοιχεία, στατιστικά δημιουργήθηκαν σε μία ή περισσότερες στήλες ή στατιστικά στοιχεία που δημιουργούνται για τους δείκτες.
Εάν δεν καθορίσετε τις επιλογές, τις UPDATE δήλωση ΣΤΑΤΙΣΤΙΚΑ ενημερώνει όλα τα στατιστικά στοιχεία σχετικά με τον πίνακα ή προβολή με ευρετήριο.
-
NORECOMPUTE
Απενεργοποίηση των αυτόματων ενημερώσεων του AUTO_UPDATE_STATISTICS στατιστικά στοιχεία για τις στατιστικές.
Εάν αυτή η επιλογή έχει οριστεί, ο optimizer ολοκληρώνει την ενημέρωση των εν λόγω στατιστικών και απενεργοποιεί μελλοντικές ενημερώσεις.
Για να ενεργοποιήσετε ξανά τη συμπεριφορά των AUTO_UPDATE_STATISTICS, επανέκδοση UPDATE ΣΤΑΤΙΣΤΙΚΑ χωρίς NORECOMPUTE επιλογή ή να εκτελέσετε sp_autostats.
Εκτός από αυτές τις λύσεις είναι επίσης δυνατό να οριστεί η ενημέρωση των δεικτών σε ένα σχέδιο συντήρησης (συντήρηση σχέδιο) της βάσης δεδομένων, αλλά αυτό είναι πιθανό ότι θα δούμε σε κάποιο μελλοντικό άρθρο.