Arquitectura de la memoria

SQL Server adquiere y libera memoria de manera dinámica según sea preciso. Normalmente, no es necesario que un administrador especifique la cantidad de memoria que se debe asignar a SQL Server, aunque todavía existe esta opción y es necesaria en algunos entornos.

SQL Server es compatible con AWE (Extensiones de ventana de dirección), que permite utilizar más de 4 gigabytes (GB) de memoria física en las versiones de 32 bits de los sistemas operativos Microsoft Windows. Se admiten hasta 64 GB de memoria física. Las instancias de SQL Server que se ejecutan en Microsoft Windows 2000 utilizan la asignación de memoria AWE estática y las instancias que se ejecutan en Microsoft Windows Server 2003 usan la asignación de memoria AWE dinámica.

Nota

La compatibilidad con AWE sólo está disponible en las ediciones Enterprise, Standard y Developer de SQL Server, y sólo se aplica a los sistemas operativos de 32 bits. Analysis Services no puede beneficiarse de la memoria asignada de AWE. Si la memoria física disponible es menor que el espacio de direcciones virtuales del modo de usuario, AWE no se puede habilitar.

Uno de los principales objetivos de diseño de todo el software de base de datos es minimizar la E/S de disco porque las operaciones de lectura y escritura del disco realizan un uso muy intensivo de los recursos. SQL Server crea un grupo de búferes en la memoria para contener las páginas leídas en la base de datos. Gran parte del código de SQL Server está dedicado a minimizar el número de lecturas y escrituras físicas entre el disco y el grupo de búferes. SQL Server intenta encontrar un equilibrio entre dos objetivos:

  • Evitar que el grupo de búferes sea tan grande que todo el sistema se quede con poca memoria.

  • Minimizar la E/S física a los archivos de base de datos al maximizar el tamaño del grupo de búferes.

Para obtener más información, consulte Administración de búfer.

De forma predeterminada, las ediciones de SQL Server 2005 administran dinámicamente la memoria para cada instancia. Existen diferencias en la forma en que SQL Server administra la memoria asignada de AWE en Windows 2000 y las versiones posteriores de los sistemas operativos.

Nota

En un sistema con mucha carga, algunas consultas grandes que necesitan una gran cantidad de memoria para ejecutarse no pueden obtener la cantidad mínima de memoria solicitada y reciben un error de tiempo de espera agotado mientras esperan los recursos de memoria. Para solucionarlo, aumente la opción query wait. Para una consulta en paralelo, considere la posibilidad de reducir la opción max degree of parallelism.

Nota

En un sistema con mucha carga y mucha presión de la memoria, las consultas con combinaciones de mezcla, orden y mapa de bits en el plan de consulta pueden quitar el mapa de bits si no obtienen la memoria mínima necesaria para dicho mapa de bits. Esto puede afectar al rendimiento de la consulta y, si el proceso de ordenación no cabe en la memoria, puede aumentar el uso de las tablas de trabajo en la base de datos tempdb, lo que hace que tempdb crezca. Para resolver este problema, agregue memoria física u optimice las consultas para que usen otro plan de consulta más rápido. Para obtener información sobre la optimización, vea Optimizar el rendimiento de tempdb y Cómo optimizar una base de datos.

Proporcionar la cantidad máxima de memoria a SQL Server

Mediante AWE y el privilegio Lock Pages in Memory, puede proporcionar las siguientes cantidades de memoria a SQL Server Database Engine (Motor de base de datos de SQL Server).

32 bits

64 bits

Memoria convencional.

Todas las ediciones de SQL Server: hasta el límite de espacio de direcciones virtuales del proceso:

  • 2 GB

  • 3 GB con el parámetro de inicio /3gb1

  • 4 GB en WOW642

Todas las ediciones de SQL Server: hasta el límite de espacio de direcciones virtuales del proceso:

  • 7 terabytes en la arquitectura IA64

  • 8 terabytes en la arquitectura x64

NotaNota
En Windows Server 2003 la limitación es de 512 GB; en Service Pack 1 de Windows Server 2003, un 1 terabyte. Si Windows admite memoria adicional, SQL Server puede llegar a los límites mencionados.

Mecanismo AWE (permite a SQL Server superar el límite del espacio de direcciones virtuales del proceso en plataformas de 32 bits).

Ediciones Standard, Enterprise y Developer de SQL Server: el grupo de búferes puede tener acceso a un máximo de 64 GB de memoria.

No aplicable3

Privilegio del sistema operativo (OS) Lock Pages in Memory (permite bloquear memoria física e impedir la paginación en el sistema operativo de la memoria bloqueada).4

Ediciones Standard, Enterprise y Developer de SQL Server: requerido para que el proceso de SQL Server utilice el mecanismo AWE. La memoria asignada a través del mecanismo AWE no se puede paginar.

Si se concede este privilegio sin habilitar AWE, no tiene efecto en el servidor.

Ediciones Enterprise y Developer de SQL Server: recomendado para evitar la paginación del sistema operativo. Puede proporcionar una ventaja de rendimiento en función de la carga de trabajo. La cantidad de memoria a la que se puede tener acceso es similar al caso de memoria convencional.

1**/3gb** es un parámetro de inicio del sistema operativo. Para obtener más información, visite MSDN Library.

2 WOW64 (Windows on Windows 64) es un modo en el que SQL Server de 32 bits se ejecuta en un sistema operativo de 64 bits. Para obtener más información, visite MSDN Library.

3 Tenga en cuenta que la opción awe enabled de sp_configure está presente en SQL Server de 64 bits, pero se omite. Se eliminará en futuras versiones o los Service Pack de SQL Server de 64 bits.

4 Si se concede el privilegio Lock Pages in Memory (con compatibilidad de 32 bits para AWE o directamente en 64 bits), se recomienda establecer también la opción max server memory. Para obtener más información, vea Opciones de memoria del servidor.