Síntomas
Cuando se producen demasiadas inserciones simultáneas en el mismo depósito de hash o si la memoria caché de planes ad hoc de SQL Server alcanza el límite de entrada de 160.036, se produce una contención grave en SOS_CACHESTORE Spinlock. En esta situación, se produce un uso elevado de la CPU en Microsoft SQL Server.
Causa
El problema se produce cuando la caché de planes de SQL Server alcanza su límite de entrada y los planes con bajo costo deben expulsarse para poder insertar nuevos planes. Esto provoca una gran contención en el SOS_CACHESTORE Spinlock que proporciona sincronización para los cubos de la tabla hash de la caché de planes de SQL Server.
Resolución
Información de actualización acumulativa
El problema se solucionó por primera vez en la siguiente actualización acumulativa de SQL Server.
Cada actualización acumulativa para SQL Server contiene todas las revisiones y todas las revisiones de seguridad incluidas en la actualización acumulativa anterior. Consulte las últimas actualizaciones acumulativas para SQL Server:
Más información
La caché de planes tiene dos límites: el tamaño total y el número total de todos los planes. Los límites de tamaño y recuento de entradas se explican en las siguientes notas del producto:
Planear los aspectos internos de la caché
El número máximo de entradas que puede contener una memoria caché de planes es cuatro veces el recuento de depósitos. 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 los sistemas de 64 bits, el número de cubos para la caché de SQL Server plan es de 40.009. Por lo tanto, el número máximo de entradas que pueden caber dentro de la caché de planes de SQL Server es de 160.036.
Si tiene una carga de trabajo que usa distintas consultas ad hoc, este límite puede convertirse en un cuello de botella. El cambio realizado por este Hotfix se ocupa de esta situación. Después de instalar este Hotfix y de habilitar el cambio mediante la marca de seguimiento de inicio "-T 174," el recuento de depósitos aumenta a 160.001 en sistemas de bits de 64. La caché de planes puede contener un máximo de 640.004 planes.
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft recogidos en la sección "Se aplica a".