Compartir a través de


Acceso a tablas de Memory-Optimized mediante Transact-SQL interpretado

Con solo algunas excepciones, puede acceder a tablas optimizadas para memoria mediante cualquier consulta de Transact-SQL o operación DML (SELECT, INSERT, UPDATE o DELETE), lotes ad hoc y módulos SQL, como procedimientos almacenados, funciones de valores de tabla, desencadenadores y vistas.

El Transact-SQL interpretado hace referencia a Transact-SQL lotes o procedimientos almacenados distintos de un procedimiento almacenado compilado de forma nativa. El acceso interpretado Transact-SQL a las tablas optimizadas para memoria se conoce como acceso de interoperabilidad.

También se puede acceder a las tablas optimizadas para memoria mediante un procedimiento almacenado compilado de forma nativa. Se recomiendan procedimientos almacenados compilados de forma nativa para las operaciones OLTP críticas para el rendimiento.

Se recomienda el acceso Transact-SQL interpretado para estos escenarios:

  • Consultas ad hoc y tareas administrativas.

  • Consultas de informes, que normalmente usan construcciones que no están disponibles en procedimientos almacenados compilados de forma nativa (como funciones de ventana).

  • Para migrar partes críticas del rendimiento de la aplicación a tablas optimizadas para memoria, con cambios mínimos (o no) en el código de la aplicación. Es posible que vea mejoras de rendimiento al migrar tablas. Si después migra procedimientos almacenados a procedimientos almacenados compilados de forma nativa, es posible que vea una mejora adicional del rendimiento.

  • Cuando una instrucción Transact-SQL no está disponible para los procedimientos almacenados compilados de forma nativa.

Las construcciones de Transact-SQL siguientes no se admiten en procedimientos almacenados Transact-SQL interpretados que acceden a datos en una tabla optimizada para memoria.

Ámbito Sin fundamento
Acceso a tablas TRUNCAR TABLA

MERGE (tabla optimizada para memoria como destino)

Cursores dinámicos y de conjunto de claves (estos se degradan automáticamente a estáticos).

Acceder desde módulos CLR utilizando la conexión de contexto.

Hacer referencia a una tabla optimizada para memoria desde una vista indizada.
Bases de datos cruzadas Consultas entre bases de datos

Transacciones entre bases de datos

Servidores vinculados

Sugerencias de tabla

Para obtener más información sobre las sugerencias de tabla, consulte . Sugerencias de tabla (Transact-SQL). Se añadió el aislamiento SNAPSHOT para respaldar In-Memory OLTP.

No se admiten las sugerencias de tabla siguientes al acceder a una tabla optimizada para memoria mediante Transact-SQL interpretado.

HOLDLOCK IGNORAR_RESTRICCIONES IGNORE_TRIGGERS NOWAIT
PAGLOCK READCOMMITTED Bloqueo de Confirmación de Lectura READPAST
LECTURA NO CONFIRMADA SARDINEL SPATIAL_WINDOW_MAX_CELLS = entero TABLOCK
TABLOCKXX UPDLOCK XLOCK

Al acceder a una tabla optimizada para memoria desde una transacción explícita o implícita mediante Transact-SQL interpretado, debe incluir una sugerencia de tabla de nivel de aislamiento, como SNAPSHOT, REPEATABLEREAD o SERIALIZABLE, o puede usar MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT. Para obtener más información, vea Directrices para niveles de aislamiento de transacciones con tablas de Memory-Optimized y Opciones ALTER DATABASE SET (Transact-SQL).

Nota:

No se requiere una sugerencia de tabla de nivel de aislamiento para las tablas optimizadas para memoria a las que se accede mediante consultas que se ejecutan en modo de confirmación automática.

Véase también

compatibilidad deTransact-SQL con OLTP de In-Memory
Migración a In-Memory OLTP