Actualizaciones y opciones de configuración recomendadas para SQL Server con cargas de trabajo de alto rendimiento
En este artículo se incluye una lista de las mejoras de rendimiento y las opciones de configuración disponibles para SQL Server 2012 y versiones posteriores.
Versión original del producto: SQL Server 2014, SQL Server 2012
Número de KB original: 2964518
Aplicar las actualizaciones recomendadas y mejorar el rendimiento de SQL Server 2014 y SQL Server 2012
En este artículo se describen las mejoras de rendimiento y los cambios disponibles para las versiones de SQL Server 2014 y SQL Server 2012 a través de varias opciones de configuración y actualizaciones de productos. Puede considerar la posibilidad de aplicar estas actualizaciones para mejorar el rendimiento de la instancia de SQL Server. El grado de mejora que verá dependerá de varios factores que incluyen el patrón de carga de trabajo, los puntos de contención, el diseño del procesador (número de grupos de procesadores, sockets, nodos NUMA, núcleos en un nodo NUMA) y la cantidad de memoria presente en el sistema. El equipo de soporte técnico de SQL Server ha usado estas actualizaciones y cambios de configuración para lograr mejoras de rendimiento razonables para las cargas de trabajo de los clientes que usaban sistemas de hardware que tenían varios nodos NUMA y muchos procesadores. El equipo de soporte técnico seguirá actualizando este artículo con otras actualizaciones en el futuro.
Sistemas de gama alta Un sistema de gama alta normalmente tiene varios sockets, ocho núcleos o más por socket, y medio terabyte o más de memoria.
Nota:
En SQL Server 2016 y versiones posteriores, muchas de las marcas de seguimiento mencionadas en este artículo son el comportamiento predeterminado y no es necesario habilitarlas en esas versiones.
Las recomendaciones se agrupan en tres tablas de la siguiente manera:
- La tabla 1 contiene las actualizaciones y marcas de seguimiento más recomendadas para la escalabilidad en sistemas de gama alta.
- La tabla 2 contiene recomendaciones e instrucciones para el ajuste adicional del rendimiento.
- La tabla 3 contiene correcciones de escalabilidad adicionales que se incluyeron junto con una actualización acumulativa.
Tabla 1. Actualizaciones importantes y marcas de seguimiento para sistemas de gama alta
Revise la tabla siguiente y habilite las marcas de seguimiento en la columna Marca de seguimiento después de asegurarse de que la instancia de SQL Server cumple los requisitos de la columna Versiones aplicables y intervalos de compilación.
Nota:
La versión y la compilación aplicables indican la actualización específica en la que se introdujo la marca de cambio o seguimiento. Si no se especifica ninguna CU, se incluyen todas las CU del SP.
La versión no aplicable y la compilación indican la actualización específica en la que la marca de cambio o seguimiento se convirtió en el comportamiento predeterminado. Por lo tanto, simplemente aplicar esa actualización será suficiente para obtener las ventajas.
Importante
Al habilitar correcciones con marcas de seguimiento en entornos AlwaysOn, tenga en cuenta que tiene que habilitar las marcas de corrección y seguimiento en todas las réplicas que forman parte del grupo de disponibilidad.
Escenario y síntoma que se deben tener en cuenta | marca de seguimiento | Intervalos de compilación y versión aplicables | Intervalos de compilación y versión no aplicables | Artículo o blog de Knowledge Base que proporciona más detalles |
---|---|---|---|---|
|
T8048 |
|
|
|
|
T8079 | SQL Server 2014 SP2 a SP/CU actual |
|
|
|
T9024 | Paquete de actualización acumulativa 3 para SQL Server 2012 Service Pack 1 a SP2 SQL Server 2014 RTM |
|
CORRECCIÓN: Valor alto de contador "esperas de escritura de registro" en una instancia de SQL Server 2012 o SQL Server 2014 |
La instancia de SQL Server controla miles de restablecimientos de conexión debido a la agrupación de conexiones. | T1236 | Paquete de actualización acumulativa 9 para SQL Server 2012 Service Pack 1 a SP2 Actualización acumulativa 1 para SQL Server 2014 |
|
|
|
T1118 |
|
|
Mejoras de simultaneidad para la base de datos tempdb NOTA Habilite la marca de seguimiento y agregue varios archivos de datos para la base de datos tempdb. |
|
T1117 |
|
|
Recomendaciones para reducir la contención de asignación en la base de datos tempdb de SQL Server. |
La contención de bloqueos por subproceso pesado SOS_CACHESTORE o los planes se expulsan con frecuencia en cargas de trabajo de consulta ad hoc. |
T174 |
|
Ninguno |
|
|
T8032 |
|
Ninguno |
|
Las estadísticas existentes no se actualizan con frecuencia debido al gran número de filas de la tabla. | T2371 |
|
Ninguno | |
|
T7471 | SQL Server 2014 SP1 CU6 a SP/CU actual | Ninguno | Aumento del rendimiento de las estadísticas de actualización con SQL 2014 y SQL 2016 |
El comando CHECKDB tarda mucho tiempo en bases de datos de gran tamaño. |
|
|
Ninguno | |
El comando CHECKDB tarda mucho tiempo en bases de datos de gran tamaño. | T2566 |
|
Ninguno |
|
La ejecución de consultas simultáneas de almacenamiento de datos que tardan mucho tiempo en compilar da lugar a RESOURCE_SEMAPHORE_QUERY_COMPILE esperas. |
T6498 | Paquete de actualización acumulativa 6 para SQL Server 2014 a SP1 |
|
|
De forma predeterminada, se deshabilitan las correcciones del optimizador de problemas de rendimiento de consultas específicas. | T4199 |
|
Ninguno | |
Experimenta un rendimiento lento mediante operaciones de consulta con tipos de datos espaciales. |
|
|
|
|
|
T8075 |
|
|
CORRECCIÓN: Error de memoria insuficiente cuando el espacio de direcciones virtuales del proceso de SQL Server es bajo en SQL Server |
|
T3449 |
|
|
CORRECCIÓN: la creación de bases de datos de SQL Server en un sistema con un gran volumen de memoria tarda más de lo esperado. |
Tabla 2. Consideraciones generales y procedimientos recomendados para mejorar el rendimiento de la instancia de SQL Server
Revise el contenido en el artículo de Knowledge Base o la columna Recurso en pantalla de libros y considere la posibilidad de implementar las instrucciones de la columna Acciones recomendadas.
Artículo de Knowledge Base/Recurso en pantalla de Libros | Acciones recomendadas |
---|---|
Establecer la opción de configuración del servidor Grado máximo de paralelismo | Use el procedimiento almacenado sp_configure para realizar cambios de configuración en Configurar la opción de configuración del servidor grado máximo de paralelismo para la instancia de SQL Server según el artículo de Knowledge Base. |
Límites de la capacidad de cálculo de cada edición de SQL Server | Enterprise Edition con licencias de licencia de servidor y acceso de cliente (CAL) está limitada a 20 núcleos por instancia de SQL Server. No hay ningún límite en el modelo de licencias de servidor basado en núcleos. Considere la posibilidad de actualizar la edición de SQL Server a la SKU adecuada para aprovechar todos los recursos de hardware. |
Rendimiento lento en Windows Server al usar el plan de energía "equilibrado" | Revise el artículo y trabaje con el administrador de Windows para implementar una de las soluciones que se indican en la sección "Resolución" del artículo. |
Asigne manualmente nodos NUMA a grupos K. | |
Optimización para cargas de trabajo ad hoc PARAMETRIZACIÓN FORZADA | Las entradas de la caché del plan se expulsan debido al crecimiento de otras cachés o distribuidores de memoria. También puede encontrar la expulsión de la memoria caché del plan cuando la memoria caché alcanza su número máximo de entradas. Además de la marca de seguimiento 8032 descrita anteriormente, considere la opción optimizar para cargas de trabajo ad hoc y también la opción de base de datos FORCED PARAMETERIZATION. |
Reducción de la paginación de la memoria del grupo de búferes en la configuración de memoria de SQL Server y consideraciones de ajuste de tamaño en SQL Server 2012 y versiones posteriores | Asigne el derecho de usuario Habilitar las páginas de bloqueo en la opción de memoria (Windows) a la cuenta de inicio del servicio SQL. Consulte Habilitación de la característica "páginas bloqueadas" en SQL Server 2012. Establezca la memoria máxima del servidor en aproximadamente el 90 % de la memoria física total. Asegúrese de que las opciones de configuración de memoria del servidor establecen las cuentas de memoria de solo los nodos configurados para usar la configuración de máscara de afinidad. |
SQL Server y páginas grandes explicadas... Opciones de optimización de SQL Server al ejecutarse en cargas de trabajo de alto rendimiento | Considere la posibilidad de habilitar TF 834 si tiene un servidor con una gran cantidad de memoria, especialmente con una carga de trabajo de almacenamiento de datos o analíticos. Tenga en cuenta que TF 834 no se recomienda si usa índices de almacén de columnas. |
Descripción de las opciones "check cache bucket count" y "access check cache quota" (Comprobación de acceso de la cuota de caché) que están disponibles en el procedimiento almacenado de sp_configure | Use las opciones de configuración del servidor de comprobación de acceso para configurar estos valores según las recomendaciones del artículo de Knowledge Base. Los valores recomendados para sistemas de gama alta son los siguientes: "recuento de cubos de caché de comprobación de acceso": 256 "cuota de caché de comprobación de acceso": 1024 |
Sugerencias de consulta de concesión de memoria ALTER WORKLOAD GROUP | Si tiene muchas consultas que agotan concesiones de memoria grandes, reduzca request_max_memory_grant_percent el grupo de cargas de trabajo predeterminado en la configuración del regulador de recursos del 25 % predeterminado a un valor inferior. Las nuevas opciones de concesión de memoria de consulta están disponibles (min_grant_percent y max_grant_percent ) en SQL Server |
Inicialización instantánea de archivos | Trabaje con el administrador de Windows para conceder a la cuenta de servicio de SQL Server el derecho de usuario "Realizar tareas de mantenimiento de volumen" según la información del tema Libros en pantalla. |
Consideraciones para la configuración de "crecimiento automático" y "autohrink" en SQL Server | Compruebe la configuración actual de la base de datos y asegúrese de que están configuradas según las recomendaciones del artículo de Knowledge Base. |
Puntos de comprobación de base de datos (SQL Server) | Considere la posibilidad de habilitar puntos de control indirectos en bases de datos de usuario para optimizar el comportamiento de E/S en SQL Server 2012 y 2014. |
CORRECCIÓN: Sincronización lenta cuando los discos tienen diferentes tamaños de sector para los archivos de registro de réplica principal y secundaria en el GRUPO de disponibilidad de SQL Server y entornos de logshipping | Si tiene un grupo de disponibilidad en el que el registro de transacciones de la réplica principal está en un disco con tamaño de sector de 512 bytes y el registro de transacciones de la réplica secundaria está en una unidad con un tamaño de sector de 4K, es posible que tenga un problema en el que la sincronización sea lenta. En estos casos, habilitar TF 1800 debe corregir el problema. Para obtener más información, vea Marca de seguimiento 1800. |
|
Si sql Server aún no está enlazado a la CPU y una sobrecarga del 1,5 % al 2 % es insignificante para las cargas de trabajo, se recomienda habilitar TF 7412 como una marca de seguimiento de inicio. Esta marca habilita la generación de perfiles ligera en SQL Server 2014 SP2 o posterior, lo que le proporcionará la posibilidad de realizar la solución de problemas de consultas dinámicas en entornos de producción. |
Tabla 3. Correcciones de rendimiento que se incluyen en una actualización acumulativa
Revise la descripción de la columna Síntomas y aplique las actualizaciones necesarias en la columna Actualización necesaria en entornos aplicables. Puede revisar el artículo de Knowledge Base para obtener más información sobre los problemas respectivos. Estas recomendaciones no requieren que habilite marcas de seguimiento adicionales como parámetros de inicio. Simplemente aplicar la actualización acumulativa más reciente o Service Pack que incluye estas correcciones es suficiente para obtener la ventaja.
Nota:
El nombre de CU de la columna Actualización necesaria proporciona la primera actualización acumulativa de SQL Server que resuelve este problema. Una actualización acumulativa contiene todas las revisiones y todas las actualizaciones que se incluyeron con la versión de actualización anterior de SQL Server. Por lo tanto, se recomienda instalar la actualización acumulativa más reciente para resolver los problemas.
Notas importantes
Si todas las condiciones de la tabla 1 se aplican a usted:
- Guía para SQL Server 2014: Aplique al menos la actualización acumulativa 1 para SQL Server 2014 para RTM y agregue "-T8048 -T9024 -T1236 -T1117 -T1118" a la lista de parámetros de inicio de SQL Server.
- Guía para SQL Server 2012: Aplicar SP2 y agregar "-T8048 -T9024 -T1236 -T1117 -T1118" a la lista de parámetros de inicio de SQL Server.
Para obtener información general sobre cómo usar marcas de seguimiento, consulte el tema DBCC TRACEON - Trace Flags (Transact-SQL) en los Libros en pantalla de SQL Server.
Puede encontrar más información sobre el número de procesadores, la configuración de NUMA, etc., en ver el registro de errores de SQL Server en SQL Server Management Studio (SSMS).
Para buscar la versión de SQL Server, compruebe lo siguiente:
Cómo determinar la versión y la edición de SQL Server y sus componentes
Referencias
Obtención del Service Pack más reciente para SQL Server 2012
Dónde encontrar información sobre las compilaciones de SQL Server más recientes
Recursos de la comunidad de SQL Server sobre actualizaciones importantes de SQL Server
- Correcciones relacionadas con el rendimiento y la estabilidad en compilaciones posteriores a SQL Server 2012 SP1
- Compilaciones más recientes de SQL Server 2012
- Compilaciones más recientes de SQL Server 2012 SP1
- Compilaciones más recientes de SQL Server 2012 SP2
- Compilaciones más recientes de SQL Server 2014
Se aplica a
- SQL Server 2014 Enterprise
- SQL Server 2014 Enterprise Core
- SQL Server 2014 Business Intelligence
- SQL Server 2014 Developer
- SQL Server 2014 Standard
- SQL Server 2014 Web
- SQL Server 2014 Express
- SQL Server 2012 Business Intelligence
- SQL Server 2012 Developer
- SQL Server 2012 Enterprise
- SQL Server 2012 Standard
- SQL Server 2012 Web
- SQL Server 2012 Enterprise Core