Síntomas
Cuando se producen demasiadas inserciones simultáneas en el mismo bucket hash o la caché ad hoc de SQL Server plan alcanza su límite de entrada de 160 036, se produce una contención grave en SOS_CACHESTORE bloqueo de número. En esta situación, se produce un uso elevado de la CPU en Microsoft SQL Server.
Causa
El problema se produce cuando la caché del plan SQL Server alcanza su límite de entrada y los planes que tienen un bajo costo deben ser desalojados para poder insertar nuevos planes. Esto provoca una contención intensa para el SOS_CACHESTORE spinlock que proporciona sincronización para los buckets de tabla hash de la caché del plan SQL Server.
Solución
Información de actualización acumulativa
El problema se corrigió por primera vez en la siguiente actualización acumulativa de SQL Server.
Cada nueva actualización acumulativa de SQL Server contiene todas las revisiones y todas las correcciones de seguridad que se incluyeron con la actualización acumulativa anterior. Echa un vistazo a las últimas actualizaciones acumulativas de SQL Server:
Más información
La caché del plan tiene dos límites: el tamaño total y el número total de todos los planes. Los límites de tamaño y número de entradas se explican en las notas del producto siguientes:
Planear los datos internos de la caché
El número máximo de entradas que puede conservar una caché de plan es cuatro veces el recuento de cubos. Puede comprobar esta información ejecutando las siguientes consultas:
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' )
Por ejemplo, en sistemas de 64 bits, el número de cubos para la caché del plan SQL Server es 40 009. Por lo tanto, el número máximo de entradas que pueden caber dentro de la caché del plan SQL Server es 160 036.
Si tiene una carga de trabajo que usa distintas consultas ad hoc, este límite puede llegar a ser un cuello de botella. El cambio que realiza esta revisión soluciona esta situación. Después de instalar esta revisión y habilitar el cambio mediante el indicador de seguimiento de inicio "-T 174", el número de buckets se aumenta a 160 001 en sistemas de 64 bits. A continuación, la caché del plan puede contener un máximo de 640 004 planes.
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "Se aplica a".