KB3074425 - CORRECCIÓN: CMEMTHREAD espera al ejecutar muchas consultas ad hoc en SQL Server 2012 o SQL Server 2014

Se aplica a
SQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Síntomas

Supongamos que tiene muchas estadísticas y tablas y que las tablas contienen muchas columnas en una base de datos de Microsoft SQL Server 2012 o SQL Server 2014. Al ejecutar muchas consultas ad hoc para recuperar datos de esas tablas simultáneamente, puede experimentar esperas de CMEMTHREAD durante la ejecución.

Resolución

Información de actualización acumulativa

El problema se corrigió por primera vez en la siguiente actualización acumulativa de SQL Server.

Recomendación: Instalar la actualización acumulativa más reciente para 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. Le recomendamos que descargue e instale las actualizaciones acumulativas más recientes para SQL Server:

      

Más información

Al compilar o volver a compilar una consulta en SQL Server 2012, el motor necesita obtener entradas del histograma de estadísticas. Debemos realizar un análisis de tabla del sistema y, a continuación, cargar el histograma específico de las tablas que están relacionadas con la memoria o la memoria caché. Estas entradas de la tabla del sistema (para las estadísticas) se almacenan en la caché de la tabla del sistema (CACHESTORE_SYSTEMROWSET). El objeto de memoria que se utiliza para crear estas entradas en la memoria caché no está particionado y es global.

Por lo tanto, si tiene asignaciones de memoria simultáneas realizadas durante esta operación, encontrará CMEMTHREAD espera en este objeto de memoria. Esto suele ocurrir cuando envía muchas consultas que requieren compilación o recompilación.

Esta revisión cambia el objeto de memoria global que se particiona para que las asignaciones de memoria simultáneas que utilizan la memoria caché de la tabla del sistema no encuentren contención y el CMEMTHREAD espera.

Para obtener más información sobre el problema similar, vea KB 3026082: CORRECCIÓN: SOS_CACHESTORE la contención de bloqueo de número en la caché de conjunto de filas de tabla del sistema provoca un uso elevado de la CPU en SQL Server 2012 o 2014.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".