El grupo de archivos con optimización para memoria

Se aplica a: SQL Server

Para crear tablas optimizadas para memoria, primero debe crear un grupo de archivos optimizados para memoria. El grupo de archivos optimizados para memoria contiene uno o varios contenedores. Cada contenedor contiene archivos de datos, archivos delta o ambos tipos de archivos.

Aunque las filas de datos de las tablas SCHEMA_ONLY no se conservan y los metadatos de las tablas optimizadas para memoria y los procedimientos almacenados compilados de forma nativa se almacenan en los catálogos tradicionales, el motor de OLTP en memoria todavía requiere un grupo de archivos optimizados para memoria para que las tablas optimizadas para memoria SCHEMA_ONLY proporcionen una experiencia uniforme para las bases de datos con tablas optimizadas para memoria.

El grupo de archivos optimizados para memoria se basa en el grupo de archivos de FILESTREAM, con las diferencias siguientes:

  • Solo puede crear un grupo de archivos optimizados para memoria por cada base de datos. Debe marcarse explícitamente el grupo de archivos como que contiene memory_optimized_data. Puede crear el grupo de archivos al crear la base de datos o puede agregarlo posteriormente:

    ALTER DATABASE imoltp ADD FILEGROUP imoltp_mod CONTAINS MEMORY_OPTIMIZED_DATA  
    
  • Debe agregar uno o varios contenedores al grupo de archivos MEMORY_OPTIMIZED_DATA. Por ejemplo:

    ALTER DATABASE imoltp ADD FILE (name='imoltp_mod1', filename='c:\data\imoltp_mod1') TO FILEGROUP imoltp_mod  
    
  • No es necesario habilitar la secuencia de archivos (Habilitar y configurar FILESTREAM) para crear un grupo de archivos optimizados para memoria. La asignación a la secuencia de archivos la realiza el motor de OLTP en memoria.

  • Puede agregar nuevos contenedores a un grupo de archivos optimizados para memoria. Quizás necesite un nuevo contenedor para expandir el almacenamiento necesario para la tabla optimizada para memoria durable y también para distribuir la E/S entre varios contenedores.

  • El movimiento de datos con un grupo de archivos optimizados para memoria se optimiza en una configuración de grupo de disponibilidad AlwaysOn. A diferencia de los archivos de FILESTREAM que se envían a las réplicas secundarias, los archivos de punto de comprobación (de datos y delta) del grupo de archivos optimizados para memoria no se envían a las réplicas secundarias. Los archivos de datos y delta se crean mediante el registro de transacciones la réplica secundaria.

Nota:

Una vez que use un grupo de archivos optimizados para memoria, solo puede quitarlo si quita la base de datos. En un entorno de producción, no es probable que necesite quitar el grupo de archivos optimizados para memoria. No puede quitar un contenedor que no esté vacío ni mover pares de archivos de datos y delta a otro contenedor en el grupo de archivos optimizados para memoria.

Configurar un grupo de archivos con optimización para memoria

Considere la posibilidad de crear varios contenedores en el mismo grupo de archivos optimizados para memoria y distribuirlos en otras unidades para lograr más ancho de banda para transmitir los datos en memoria.

En un escenario de varios contenedores y varias unidades, los archivos de datos y delta se asignan por turnos (round robin) en los contenedores. El primer archivo de datos se asigna al primer contenedor y el archivo delta se asigna desde el siguiente contenedor, y este modelo de asignación se repite. Este esquema de asignación distribuye uniformemente los archivos de datos y delta entre los contenedores si tiene un número impar de unidades, cada una de ellas asignada a un contenedor. Sin embargo, si tiene un número par de unidades, cada una de ellas asignada a un contenedor, puede provocar un almacenamiento desequilibrado donde los archivos de datos se asignan a las unidades impares y los archivos delta se asignan a las unidades pares. Para obtener un flujo equilibrado de E/S en la recuperación, considere la posibilidad de colocar los pares de archivos de datos y delta en los mismos ejes o almacenamiento.

Al configurar el almacenamiento, debe proporcionar una cantidad de espacio en disco disponible que sea cuatro veces el tamaño de tablas durables optimizadas para memoria. También debe asegurarse de que el subsistema de E/S admita los IOPS necesarios para la carga de trabajo. Si los pares de archivos de datos y delta se rellenan en las IOPS especificadas, necesita el triple de esas IOPS para dar cabida a las operaciones de almacenamiento y combinación. Puede agregar capacidad de almacenamiento e IOPS si agrega uno o varios contenedores al grupo de archivos optimizados para memoria.

Precaución

Si se establece un valor MAXSIZE para el grupo de archivos optimizados para memoria y los archivos de punto de control superan el tamaño máximo del contenedor, la base de datos se convertirá en SUSPECT.
En este caso no intente establecer la base de datos OFFLINE y ONLINE, lo que haría que permaneciera en un estado RECOVERY_PENDING.

Consulte también

Creación y administración del almacenamiento de objetos con optimización para memoria
Archivos y grupos de archivos de base de datos
Opciones File y Filegroup de ALTER DATABASE (Transact-SQL)