tables optimized limitations sql-server redis memory-optimized-tables

sql-server - limitations - sql server 2016 memory optimized tables



SQL Server 2014 en memoria OLTP vs Redis (2)

¿Es el OLTP en memoria de SQL Server 2014 (Hekaton) el mismo concepto o similar con Redis ?

Uso Redis para el almacenamiento en memoria (almacenamiento en RAM) y el almacenamiento en caché, mientras tengo una base de datos SQL Server separada (como lo hace StackExchange). ¿Puede Hekaton hacer lo mismo?


Primero, necesita la edición empresarial (muy costosa ) de SQL Server para usar Hekaton (In-Memory OLTP). Tenga en cuenta que tiene que pagar por el servidor SQL por CPU, agregar más carga de trabajo al servidor SQL puede requerir que tenga más CPU y por lo tanto mucho más costos de licencia.

Pero a diferencia de Redis, puede hacer que un desencadenante o un proceso almacenado actualice su "en memoria caché" como parte de la transacción de la base de datos. También puede encontrar que Hekaton es lo suficientemente rápido como para no necesitar un conjunto separado de cachés de sus tablas principales.

Así que sí, Hekaton puede hacer lo mismo que Redis, pero es poco probable que sea sensato usarlo de esa manera, a menos que su uso no le cueste mucho.

Hekaton tiene su propio valor cuando le permite procesar muchos más datos sin tener que invertir en el costo de programación de rediseñar su sistema para utilizar el almacenamiento en caché con Redis o de otra manera.


Son similares por ser principalmente en memoria, pero eso es todo.

Redis es una base de datos clave-valor en memoria. Puede conservar los datos en el disco si lo configura, pero mantiene todo el conjunto de datos en la memoria, por lo que necesita suficiente RAM para eso. La arquitectura clave-valor permite varios tipos de datos diferentes para que pueda almacenar un valor como una simple cadena o listas, conjuntos, hashes, etc. Básicamente, todas las estructuras de datos que puede usar dentro de un lenguaje de programación están disponibles en Redis de forma nativa.

SQL Server Hekaton (In-Memory OLTP) es un nuevo motor diseñado para ejecutar tablas relacionales en la memoria. Todos los datos de estas tablas se guardan en la RAM, pero también se almacenan en el disco para que sean completamente duraderos.

Hekaton puede tomar tablas individuales en una base de datos de SQL Server y ejecutarlas en un proceso diferente utilizando MVCC (en lugar de páginas y bloqueos) y otras optimizaciones para que las operaciones sean miles de veces más rápidas que el motor tradicional basado en disco. Se ha investigado mucho sobre esto y el caso de uso principal sería tomar una tabla que está bajo una carga pesada y cambiarla para que se ejecute en la memoria para aumentar el rendimiento y la escalabilidad.

Hekaton no estaba destinado a ejecutar una base de datos completa en la memoria (aunque puede hacerlo si realmente lo desea), sino más bien como un nuevo motor diseñado para manejar casos específicos mientras mantiene la interfaz igual. Todo para el usuario final es idéntico al resto de SQL Server: puede usar SQL, procedimientos almacenados, desencadenadores, índices, operaciones atómicas con propiedades de ACID y puede trabajar sin problemas con datos en tablas regulares y en memoria.

Debido al potencial de rendimiento de Hekaton, puede usarlo para reemplazar a Redis si necesita la velocidad y desea modelar sus datos dentro de las tablas relacionales tradicionales. Si necesita las otras características clave-valor y estructura de datos de Redis, será mejor que se quede con eso.

Con SQL 2016 SP1 y más reciente, todos los niveles de SQL Server ahora tienen acceso a las mismas características y la única diferencia es el precio por soporte y capacidad.