Partekatu honen bidez:


In-Memory OLTP (OptimizaciónIn-Memory)

Novedades de SQL Server 2014 (12.x), In-Memory OLTP puede mejorar significativamente el rendimiento de las aplicaciones de base de datos OLTP. In-Memory OLTP es un motor de base de datos optimizado para memoria integrado en el motor de SQL Server, optimizado para OLTP.

Azure Virtual Machine ¿Desea probar SQL Server 2016? Regístrese en Microsoft Azure y, a continuación, vaya aquí para poner en marcha una máquina virtual con SQL Server 2016 ya instalado. Puede eliminar la máquina virtual cuando haya terminado.

Para usar In-Memory OLTP, defina una tabla con acceso muy accesible como optimizada para memoria. Las tablas optimizadas para memoria son totalmente transaccionales, duraderas y se acceden mediante Transact-SQL de la misma manera que las tablas basadas en disco. Una consulta puede hacer referencia a tablas optimizadas para memoria y tablas basadas en disco. Una transacción puede actualizar datos en tablas optimizadas para memoria y tablas basadas en disco. Los procedimientos almacenados que solo hacen referencia a tablas optimizadas para memoria se pueden compilar de forma nativa en código de máquina para mejorar aún más el rendimiento. El motor OLTP de In-Memory está diseñado para una concurrencia de sesiones extremadamente alta en transacciones de tipo OLTP impulsadas desde una capa intermedia altamente escalable horizontalmente. Para lograr esto, utiliza estructuras de datos libres de cerrojos y control de concurrencia optimista de múltiples versiones. El resultado es predecible, baja latencia de submilisegundos y alto rendimiento con escala lineal para las transacciones de base de datos. La ganancia de rendimiento real depende de muchos factores, pero las mejoras de rendimiento entre 5 y 20 veces son comunes.

En la tabla siguiente se resumen los patrones de carga de trabajo que pueden beneficiarse más mediante In-Memory OLTP:

Escenario de implementación Escenario de implementación Ventajas de In-Memory OLTP
Alta tasa de inserción de datos desde varias conexiones simultáneas. Principalmente un almacén de solo adición.

No se puede manejar la carga de trabajo de inserción.
Eliminar la disputa.

Reducir la tala.
Lea el rendimiento y la escala con inserciones y actualizaciones periódicas por lotes. Operaciones de lectura de alto rendimiento, especialmente cuando cada solicitud de servidor tiene varias operaciones de lectura para realizar.

No se pueden cumplir los requisitos de escalado vertical.
Elimine la contención cuando llegan nuevos datos.

Recuperación de datos de menor latencia.

Minimizar el tiempo de ejecución del código.
Procesamiento intensivo de lógica de negocios en el servidor de bases de datos. Insertar, actualizar y eliminar carga de trabajo.

Cálculo intensivo dentro de procedimientos almacenados.

Contención de lectura y escritura.
Eliminar cualquier contención.

Minimice el tiempo de ejecución del código para reducir la latencia y mejorar el rendimiento.
Baja latencia. Requerir transacciones empresariales de baja latencia que las soluciones típicas de base de datos no pueden lograr. Eliminar la contención.

Minimizar el tiempo de ejecución del código.

Ejecución de código de baja latencia.

Recuperación eficaz de datos.
Administración del estado de sesión. Inserciones, actualizaciones y consultas de puntos frecuentes.

Carga a gran escala desde numerosos servidores web sin estado.
Eliminar la contención.

Recuperación eficaz de datos.

Reducción o eliminación opcionales de entrada/salida al usar tablas no duraderas

Para obtener más información sobre los escenarios en los que In-Memory OLTP dará lugar a las mayores mejoras de rendimiento, consulte In-Memory OLTP : Patrones comunes de carga de trabajo y consideraciones de migración.

In-Memory OLTP mejorará el rendimiento mejor en OLTP con transacciones de ejecución corta.

Los patrones de programación que In-Memory OLTP mejorarán incluyen escenarios de simultaneidad, búsquedas de puntos, cargas de trabajo en las que hay muchas inserciones y actualizaciones, y lógica empresarial en procedimientos almacenados.

La integración con SQL Server significa que puede tener tablas optimizadas para memoria y tablas basadas en disco en la misma base de datos y realizar consultas en ambos tipos de tablas.

En SQL Server 2014 (12.x) hay limitaciones en Transact-SQL área expuesta compatible con In-Memory OLTP.

In-Memory OLTP logra importantes mejoras de rendimiento y escalabilidad mediante:

  • Algoritmos optimizados para acceder a datos residentes en memoria.

  • Control de simultaneidad optimista que elimina bloqueos lógicos.

  • Bloquear objetos libres que eliminan todos los bloqueos físicos y bloqueos temporales. Los subprocesos que realizan trabajos transaccionales no usan bloqueos ni bloqueos temporales para el control de simultaneidad.

  • Procedimientos almacenados compilados de forma nativa, que tienen un rendimiento significativamente mejor que los procedimientos almacenados interpretados, al acceder a una tabla optimizada para memoria.

Importante

Se requerirán algunos cambios de sintaxis en tablas y procedimientos almacenados para usar In-Memory OLTP. Para obtener más información, consulte Migración a In-Memory OLTP. Antes de intentar migrar una tabla basada en disco a una tabla optimizada para memoria, lea Determinar si se debe migrar una tabla o un procedimiento almacenado a In-Memory OLTP para ver qué tablas y procedimientos almacenados se beneficiarán de In-Memory OLTP.

En esta sección

En esta sección se proporciona información sobre los conceptos siguientes:

Tema Descripción
Requisitos para usar tablas de Memory-Optimized Describe los requisitos de hardware y software y las directrices para usar tablas optimizadas para memoria.
Uso de In-Memory OLTP en un entorno de máquina virtual Trata el uso de In-Memory OLTP en un entorno virtualizado.
Ejemplos de código OLTP deIn-Memory Contiene ejemplos de código que muestran cómo crear y usar una tabla optimizada para memoria.
Memory-Optimized Tablas Presenta tablas optimizadas para memoria.
variables de tabla deMemory-Optimized Ejemplo de código que muestra cómo usar una variable de tabla optimizada para memoria en lugar de una variable de tabla tradicional para reducir el uso de tempdb.
Índices en tablas de Memory-Optimized Presenta índices optimizados para memoria.
Procedimientos almacenados compilados de forma nativa Presenta procedimientos almacenados compilados de forma nativa.
Administración de memoria para In-Memory OLTP Descripción y administración del uso de memoria en el sistema.
Creación y administración del almacenamiento para objetos de Memory-Optimized Describe los datos y los archivos delta, que almacenan información sobre las transacciones en tablas optimizadas para memoria.
Copia de seguridad, restauración y recuperación de tablas de Memory-Optimized Describe la copia de seguridad, la restauración y la recuperación de las tablas optimizadas para memoria.
compatibilidad deTransact-SQL con OLTP de In-Memory Describe Transact-SQL compatibilidad con In-Memory OLTP.
Compatibilidad de alta disponibilidad con bases de datos OLTP de In-Memory Describe los grupos de disponibilidad y los clústeres de conmutación por error en In-Memory OLTP.
Compatibilidad de SQL Server con OLTP de In-Memory Enumera las características y sintaxis nuevas y actualizadas que admiten tablas optimizadas para memoria.
Migración a In-Memory OLTP Describe cómo migrar tablas basadas en disco a tablas optimizadas para memoria.

Puede encontrar más información sobre In-Memory OLTP en:

Véase también

Características de la base de datos