Exportar (0) Imprimir
Expandir todo
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

OLTP en memoria (optimización en memoria)

SQL Server 2014

Es una novedad en SQL Server 2014, OLTP en memoria puede mejorar significativamente el rendimiento de la aplicación de base de datos OLTP. OLTP en memoria es un motor de base de datos con optimización para memoria integrado en el motor de SQL Server, optimizado para OLTP.

Para usar OLTP en memoria, debe definir una tabla a la que se accede con mucha frecuencia como que está optimizada para memoria. Las tablas con optimización para memoria son completamente transaccionales y durables, y se accede a ellas mediante Transact-SQL, igual que con las tablas basadas en disco. Una consulta puede hacer referencia tanto a tablas con optimización para memoria como a tablas basadas en disco. Una transacción puede actualizar datos en tablas con optimización para memoria y en 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 máquina para obtener nuevas mejoras en el rendimiento. El motor OLTP en memoria se ha diseñado para sesiones de simultaneidad muy elevada para el tipo OLTP de transacciones que se derivan de un nivel medio con gran capacidad de ampliación horizontal. Para lograr esto, usa estructuras de datos sin bloqueos temporales y control de simultaneidad optimista de múltiples versiones. El resultado es predecible, de baja latencia por debajo de los milisegundos y de gran rendimiento con escalado lineal para transacciones de bases de datos. La ganancia de rendimiento real depende de muchos factores, pero es habitual obtener un rendimiento entre 5 y 20 veces superior.

En esta tabla resumimos los patrones de carga de trabajo que sacarían el máximo partido usando OLTP en memoria:

Escenario de implementación

Escenario de implementación

Ventajas de OLTP en memoria

índice elevado de inserción de datos a partir de varias conexiones simultáneas.

Almacenamiento principal solo de adición.

Incapaz de procesar la carga de trabajo insertada.

Eliminar contención.

Reducir registros.

Leer el rendimiento y escalar con inserción y actualizaciones por lotes periódicos.

Operaciones de lectura de alto rendimiento, especialmente cuando cada solicitud de servidor debe realizar varias operaciones de lectura.

Incapaz de satisfacer los requisitos de ampliación vertical.

Eliminar la contención cuando llegan datos nuevos.

Recuperación de datos de menor latencia.

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

Procesamiento intensivo de lógica empresarial en el servidor de base de datos.

Insertar, actualizar y eliminar cargas de trabajo.

Cálculos que consumen muchos recursos en los procedimientos almacenados.

Contención de lectura y escritura.

Eliminar contención.

Minimizar 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 no pueden realizar las soluciones de bases de datos habituales.

Eliminar 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 la sesión.

Inserciones, actualizaciones y búsquedas de punto frecuentes.

Carga de escala alta de numerosos servidores web sin estado.

Eliminar contención.

Recuperación eficaz de datos.

Opcional: reducción o eliminación de E/S cuando se usen tablas que no sean durables

Para más información sobre escenarios donde el uso de OLTP en memoria suponga alcanzar un mayor rendimiento, vea el tema sobreOLTP en memoria y los patrones de carga de trabajo comunes y consideraciones para la migración.

OLTP en memoria mejorará el rendimiento de forma óptima en OLTP con transacciones de breve ejecución.

Entre los patrones de programación donde se apreciarán mejoras con OLTP en memoria, se incluyen los escenarios de simultaneidad, búsquedas de punto, cargas de trabajo donde hay muchas inserciones y actualizaciones, y lógica empresarial en procedimientos almacenados.

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

En SQL Server 2014 existen limitaciones en el área expuesta de Transact-SQL admitida para OLTP en memoria.

OLTP en memoria logra importantes mejoras en el rendimiento y la escalabilidad mediante:

  • Los algoritmos que se optimizan para tener acceso a los datos residentes en memoria.

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

  • Objetos sin bloqueo que eliminan todos los bloqueos físicos y temporales. Los subprocesos que realizan el trabajo transaccional no usan bloqueos ni bloqueos temporales para el control de simultaneidad.

  • Los procedimientos almacenados compilados de forma nativa, que tienen un rendimiento bastante mejor que los procedimientos almacenados interpretados, cuando se tiene acceso a tablas con optimización para memoria.

Nota importante Importante

Serán necesarios algunos cambios de sintaxis en las tablas y los procedimientos almacenados para usar OLTP en memoria. Para obtener más información, consulte Migrar a OLTP en memoria. Antes de intentar migrar una tabla basada en disco a una tabla con optimización para memoria, lea Determinar si una tabla o un procedimiento almacenado se debe pasar a OLTP en memoria para ver qué tablas y procedimientos almacenados se beneficiarán de OLTP en memoria.

Esta sección proporciona información acerca de los conceptos siguientes:

Tema

Descripción

Requisitos para utilizar las tablas con optimización para memoria

Describe los requisitos de hardware y software y las instrucciones para utilizar tablas con optimización para memoria.

Usar OLTP en memoria en un entorno de máquinas virtuales

Se ocupa del uso de OLTP en memoria en entornos virtualizados.

Ejemplos de código de OLTP en memoria

Contiene ejemplos de código en los que se muestra cómo crear y utilizar una tabla con optimización para memoria.

Tablas con optimización para memoria

Presenta las tablas con optimización para memoria.

Variables de tabla con optimización para memoria

Ejemplo de código que muestra cómo utilizar una variable de tabla con optimización para memoria en lugar de una variable de tabla tradicional para reducir el uso de tempdb.

Índices de las tablas con optimización para memoria

Presenta los índices con optimización para memoria.

Procedimientos almacenados compilados de forma nativa

Presenta los procedimientos almacenados compilados de forma nativa.

Administrar memoria para OLTP en memoria

Descripción y administración del uso de memoria en el sistema.

Crear y administrar el almacenamiento de objetos con optimización para memoria

Describe los archivos delta y de datos, que almacenan información sobre las transacciones en tablas con optimización para memoria.

Hacer copia de seguridad, restaurar y recuperar tablas con optimización para memoria

Describe las copias de seguridad, las restauraciones y las recuperaciones para tablas con optimización para memoria.

Compatibilidad de Transact-SQL con OLTP en memoria

Describe la compatibilidad de Transact-SQL para OLTP en memoria.

High Availability Support for In-Memory OLTP databases

Describe los grupos de disponibilidad y los clústeres de conmutación por error en OLTP en memoria.

Compatibilidad de SQL Server con OLTP en memoria

Enumera la sintaxis nueva y la actualizada, y las características que admiten tablas con optimización para memoria.

Migrar a OLTP en memoria

Describe cómo migrar las tablas basadas en disco a tablas con optimización para memoria.

Encontrará más información acerca de OLTP en memoria en:

¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft