sql >> Base de Datos >  >> RDS >> Sqlserver

SQL Server 2016:Mejoras de OLTP en memoria

Actualización:30 de noviembre de 2015

El equipo de SQL Server ha publicado una publicación de blog con algunas funciones nuevas para OLTP en memoria en CTP 3.1:

  • SQL Server 2016 Community Technology Preview 3.1 está disponible

Actualización:17 de noviembre de 2015
Jos de Bruijn ha publicado una lista actualizada de cambios de OLTP en memoria a partir de CTP 3.0:

  • OLTP en memoria:novedades en SQL2016 CTP3

Anteriormente publiqué sobre los cambios en los grupos de disponibilidad en SQL Server 2016, de los que me enteré en MS Ignite en gran parte de una sesión de Joey D'Antoni y Denny Cherry. Otra gran sesión fue la de Kevin Farlee y Sunil Agarwal sobre los cambios que se esperan para In-Memory OLTP (la característica anteriormente conocida como "Hekaton"). Una nota al margen interesante:el video de esta sesión muestra una demostración en la que Kevin está ejecutando CTP2.0 (compilación 13.0.200), aunque probablemente no sea la compilación que veremos públicamente este verano.

Característica/Límite Servidor SQL 2014 Servidor SQL 2016
Tamaño máximo combinado de mesas duraderas 256 GB 2 TB
LOB (varbinary(máximo), [n]varchar(máximo)) No compatible Compatible*
Cifrado de datos transparente (TDE) No compatible Compatible
Conversaciones de puntos de control sin conexión 1 1 por contenedor
ALTERAR PROCEDIMIENTO / sp_recompile No compatible Soportado (totalmente en línea)
Llamadas a procedimientos nativos anidados No compatible Compatible
UDF escalares compilados de forma nativa No compatible Compatible
ALTERAR TABLA No compatible
(DROP / re-CREATE)
Soporte parcial
(sin conexión - detalles a continuación)
Disparadores DML No compatible Soportado parcialmente
(DESPUÉS, compilado de forma nativa)
Índices en columnas NULLable No compatible Compatible
Intercalaciones que no son BIN2 en columnas de clave de índice No compatible Compatible
Páginas de códigos no latinos para columnas [var]char No compatible Compatible
Comparación/clasificación no BIN2 en módulos nativos No compatible Compatible
Claves foráneas No compatible Compatible
Comprobar/Restricciones únicas No compatible Compatible
Paralelismo No compatible Compatible
UNIÓN EXTERNA, O, NO, UNIÓN [TODO], DISTINTO, EXISTE, EN No compatible Compatible
Conjuntos de resultados activos múltiples (MARS)
(Significa una mejor compatibilidad con Entity Framework).
No compatible Compatible
Diseñador de tablas SSMS No compatible Compatible

* La compatibilidad con LOB no estará disponible en el envío de CTP este verano.

ALTER TABLE es una operación fuera de línea y admitirá agregar/eliminar columnas, índices y restricciones. Habrá nuevas extensiones de sintaxis para admitir algunas de estas acciones. Puede cambiar los valores de recuento de cubos con una reconstrucción simple (sin embargo, tenga en cuenta que cualquier reconstrucción requerirá el doble de memoria):

ALTER TABLE dbo.InMemoryTable
  ALTER INDEX IX_NC_Hash 
  REBUILD WITH (BUCKET_COUNT = 1048576);

Además de estas mejoras de capacidad/características, también hay algunas mejoras de rendimiento adicionales. Por ejemplo, habrá la posibilidad de agregar un índice de almacén de columnas no agrupado, actualizable y en memoria sobre tablas basadas en disco o en memoria. Y han simplificado la forma en que se procesan las filas eliminadas (en 2014, esas operaciones usan FileStream; en 2016, omitirán este paso). También se han realizado mejoras en los asesores de migración y el analizador de mejores prácticas:ahora son más ligeros en la recopilación de datos y brindan más contexto sobre la complejidad de la migración.

Todavía hay algunas limitaciones con algunos de estos cambios. TDE, por ejemplo, requiere pasos adicionales al actualizar una base de datos. Pero está claro que a medida que In-Memory OLTP madura, están eliminando muchos de los mayores obstáculos para la adopción.

¡Pero espera hay mas! Si desea utilizar In-Memory OLTP en Azure SQL Database, habrá una versión preliminar pública con soporte completo este verano. Por lo tanto, no necesitará su propio servidor físico con 2 TB de memoria para llevar esta función al límite. Sin embargo, no espere que esta característica se filtre a la Edición estándar.