Symptomy
Gdy w tym samym zasobniku wypada zbyt wiele współbieżnych wstawek lub pamięć podręczna planu programu SQL Server ad hoc osiągnie limit 160 036, należy poważny rywalizację na SOS_CACHESTORE spinlock. W takiej sytuacji w programie Microsoft SQL Server występuje wysokie użycie procesora.
Przyczyna
Ten problem występuje, gdy pamięć podręczna planu programu SQL Server osiągnie swój limit, a plany o niskich kosztach należy wykluczyć, aby można było wstawiać nowe plany. Spowoduje to powstanie intensywnej rywalizacji SOS_CACHESTORE spinlock, która zapewnia synchronizację zasobników tabeli skrótów w pamięci podręcznej planu programu SQL Server.
Rozwiązanie
Informacje o aktualizacji zbiorczej
Ten problem został po raz pierwszy rozwiązany w poniższej zbiorczej aktualizacji programu SQL Server.
Każda nowa Zbiorcza aktualizacja programu SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji zbiorczej. Zapoznaj się z najnowszymi aktualizacjami zbiorczymi dla programu SQL Server:
Więcej informacji
Pamięć podręczna planu ma dwie limity: całkowity rozmiar i łączna liczba wszystkich planów. Limity rozmiaru i liczby wpisów są objaśnione w następującym dokumencie:
Planowanie wewnętrznych pamięci podręcznej
Maksymalna liczba wpisów, które może zawierać pamięć podręczna planu, jest czterokrotnie większa niż liczba zasobników. Te informacje można zweryfikować, uruchamiając następujące zapytania:
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' )
Na przykład w przypadku systemów 64-bitowych liczba zasobników pamięci podręcznej programu SQL Server plan to 40 009. Dlatego Maksymalna liczba wpisów, które mogą pasować do pamięci podręcznej planu programu SQL Server, to 160 036.
Jeśli masz obciążenie korzystające z różnych zapytań ad hoc, ten limit może stać się wąskim gardłaem. Zmiana wprowadzona w ramach tej poprawki eliminuje tę sytuację. Po zainstalowaniu tej poprawki i włączeniu zmiany za pomocą flagi śledzenia uruchamiania "-T 174" liczba zasobników jest zwiększana do 160 001 w systemach 64-bitowych. Pamięć podręczna planu umożliwia przechowanie maksymalnie 640 004 planów.
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".