Configuración de memoria de Microsoft SQL Server
En la siguiente sección se explica la configuración de los valores de memoria de SQL Server para optimizar el rendimiento de la base de datos.
Memoria máxima del servidor
La opción max server memory define la cantidad máxima de memoria que puede utilizar la instancia de SQL Server.
Se utiliza generalmente si se ejecutan varias aplicaciones en el mismo servidor donde se ejecuta SQL Server y desea garantizar que estas aplicaciones tengan suficiente memoria para funcionar correctamente.
Algunas aplicaciones solo utilizan la memoria disponible cuando se inician y no solicitan más, incluso si es necesario. Aquí es donde entra en juego la configuración de memoria máxima del servidor.
En un clúster de SQL Server con varias instancias de SQL Server, cada instancia podría competir por los recursos. Establecer un límite de memoria para cada instancia de SQL Server puede ayudar a garantizar el mejor rendimiento para cada instancia.
NetApp recomienda dejar al menos 4GB a 6GB de RAM para el sistema operativo para evitar problemas de rendimiento. |
Ajuste de la memoria mínima y máxima del servidor mediante SQL Server Management Studio.
El uso de SQL Server Management Studio para ajustar la memoria mínima o máxima del servidor requiere un reinicio del servicio de SQL Server. Puede ajustar la memoria del servidor mediante Transact SQL (T-SQL) usando este código:
EXECUTE sp_configure 'show advanced options', 1 GO EXECUTE sp_configure 'min server memory (MB)', 2048 GO EXEC sp_configure 'max server memory (MB)', 120832 GO RECONFIGURE WITH OVERRIDE
Acceso a memoria no uniforme
El acceso no uniforme a la memoria (NUMA) es un método de optimización de acceso a la memoria que ayuda a aumentar la velocidad del procesador sin aumentar la carga en el bus del procesador.
Si NUMA está configurado en el servidor donde está instalado SQL Server, no se requiere ninguna configuración adicional porque SQL Server tiene en cuenta NUMA y funciona bien en el hardware NUMA.
Index CREATE MEMORIA
La opción INDEX CREATE MEMORY es otra opción avanzada que normalmente no debe cambiar.
Controla la cantidad máxima de RAM asignada inicialmente para crear índices. El valor por defecto de esta opción es 0, lo que significa que SQL Server la gestiona automáticamente. Sin embargo, si tiene dificultades para crear índices, considere aumentar el valor de esta opción.
Memoria mínima por consulta
Cuando se ejecuta una consulta, SQL Server intenta asignar la cantidad óptima de memoria para que se ejecute de forma eficiente.
De forma predeterminada, el valor de memoria mínima por consulta asigna >= a 1024KB para cada consulta que se ejecute. Es recomendable dejar este valor en el valor por defecto de 0 para permitir que SQL Server gestione dinámicamente la cantidad de memoria asignada para las operaciones de creación de índices. Sin embargo, si SQL Server tiene más RAM de la que necesita para ejecutarse de manera eficiente, el rendimiento de algunas consultas se puede aumentar si aumenta este valor. Por lo tanto, siempre y cuando la memoria esté disponible en el servidor que no esté utilizando SQL Server, ninguna otra aplicación o el sistema operativo, aumentar esta configuración puede ayudar en general al rendimiento de SQL Server. Si no hay memoria libre disponible, aumentar esta configuración puede afectar al rendimiento general.
Extensiones del pool de buffers
La extensión del pool de buffers proporciona una integración perfecta de una extensión NVRAM con el pool de buffers del motor de base de datos para mejorar significativamente el rendimiento de E/S.
La extensión del pool de buffers no está disponible en todas las ediciones de SQL Server. Solo está disponible con las ediciones SQL Server Standard, Business Intelligence y Enterprise de 64 bits.
La función de extensión del pool de buffers amplía la caché del pool de buffers con almacenamiento no volátil (normalmente SSD). La extensión permite al pool de buffers acomodar un conjunto de trabajo de base de datos más grande, lo que obliga a la paginación de E/S entre la RAM y los SSD y descarga de forma efectiva pequeñas E/S aleatorias de discos mecánicos a SSD. Debido a la menor latencia y al mejor rendimiento de I/O aleatorio de los SSD, la extensión del pool de búfer mejora significativamente el rendimiento de I/O.
La función de extensión de pool de buffers ofrece las siguientes ventajas:
-
Aumento del rendimiento de I/O aleatoria
-
Latencia de I/O reducida
-
Aumento del rendimiento de las transacciones
-
Rendimiento de lectura mejorado con un pool de búfer híbrido más grande
-
Una arquitectura de caché que puede aprovechar la memoria de bajo costo, existente y futura
NetApp recomienda configurar las extensiones del grupo de buffers para:
|
El siguiente ejemplo muestra un comando T-SQL para configurar una extensión de pool de buffers de 32GB.
USE master GO ALTER SERVER CONFIGURATION SET BUFFER POOL EXTENSION ON (FILENAME = ‘P:\BUFFER POOL EXTENSION\SQLServerCache.BUFFER POOL EXTENSION', SIZE = 32 GB); GO