Συμπτώματα
Όταν υπάρχουν πάρα πολλές ταυτόχρονες εισαγωγές στον ίδιο κάδο κατακερμάτων ή το ad hoc cache προγράμματος SQL Server φτάσει το όριο καταχώρησης των 160.036, παρουσιάζεται σοβαρή διένεξη σε SOS_CACHESTORE αυξομείου. Σε αυτήν την περίπτωση, στο Microsoft SQL Server παρουσιάζεται υψηλή χρήση CPU.
Αιτία
Το πρόβλημα παρουσιάζεται όταν το cache προγράμματος SQL Server φτάσει στο όριο εισόδου του και τα προγράμματα με χαμηλό κόστος πρέπει να εκδιωχθούν για την εισαγωγή νέων προγραμμάτων. Αυτό προκαλεί έντονη διαμάχη για το spinlock SOS_CACHESTORE που παρέχει συγχρονισμό για τους κάδους πίνακα κατακερματισμού του cache σχεδίου SQL Server.
Επίλυση
Πληροφορίες συγκεντρωτικής ενημέρωσης
Το πρόβλημα διορθώθηκε για πρώτη φορά στην ακόλουθη συγκεντρωτική ενημέρωση του SQL Server.
Κάθε νέα συγκεντρωτική ενημέρωση για SQL Server περιέχει όλες τις άμεσες επιδιορθώσεις και όλες τις επιδιορθώσεις ασφαλείας που περιλαμβάνονταν στην προηγούμενη συγκεντρωτική ενημέρωση. Δείτε τις πιο πρόσφατες συγκεντρωτικές ενημερώσεις για SQL Server:
Περισσότερες πληροφορίες
Το cache προγράμματος έχει δύο όρια: το συνολικό μέγεθος και τον συνολικό αριθμό όλων των προγραμμάτων. Τα όρια μεγέθους και πλήθους καταχωρήσεων εξηγούνται στην ακόλουθη λευκή βίβλο:
Σχεδιασμός εσωτερικών χώρου αποθήκευσης cache
Ο μέγιστος αριθμός καταχωρήσεων που μπορεί να περιέχει ένα cache προγράμματος είναι τέσσερις φορές το πλήθος των κάδων. Μπορείτε να επαληθεύσετε αυτές τις πληροφορίες εκτελώντας τα ακόλουθα ερωτήματα:
select name, type, buckets_count
from sys.dm_os_memory_cache_hash_tables
where name IN ( 'SQL Plans' , 'Object Plans' , 'Bound Trees' )
select name, type, pages_kb, entries_count
from sys.dm_os_memory_cache_counters
where name IN ( 'SQL Plans' , 'Object Plans' , 'Bound Trees' )
Για παράδειγμα, σε συστήματα 64 bit, ο αριθμός των κάδων για το cache προγράμματος SQL Server είναι 40.009. Επομένως, ο μέγιστος αριθμός καταχωρήσεων που μπορούν να χωρέσουν μέσα στο cache του προγράμματος SQL Server είναι 160.036.
Εάν έχετε φόρτο εργασίας που χρησιμοποιεί διαφορετικά ad hoc ερωτήματα, αυτό το όριο μπορεί να αποτελέσει σημείο συμφόρησης. Η αλλαγή που πραγματοποιείται από αυτήν την άμεση επιδιόρθωση αντιμετωπίζει αυτή την κατάσταση. Μετά την εγκατάσταση αυτής της άμεσης επιδιόρθωσης και την ενεργοποίηση της αλλαγής χρησιμοποιώντας τη σημαία ανίχνευσης εκκίνησης "-T 174", το πλήθος κάδων αυξάνεται σε 160.001 σε συστήματα 64 bit. Στη συνέχεια, το cache προγράμματος έχει τη δυνατότητα να διατηρήσει έως 640.004 προγράμματα.
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για πρόβλημα στα προϊόντα της Microsoft που αναφέρονται στην ενότητα "Ισχύει για".