En esta sesión, exploraremos las inversiones de todas las características referente a la tecnología In-Memory OLTP en Microsoft SQL Server tanto On-Premises así como en la nube, incluyendo el T-SQL Surface Area, Los Procedimientos Almacenados nativamente compilados, así como las mejoras en cuanto a escalabilidad entre muchas otras.
2. Microsoft Data Platform
Avanet
Jose Redondo
Microsoft SQL Server MVP | CEO EntornoDB | DPA SolidQ
redondoj@gmail.com | @redondoj | redondoj.wordpress.com
In-Memory OLTP en SQL Server 2016
3. Expositor
• Data Architect
• BI Expert, Data Analysis & Big Data
• Dev Client, Web & Database .NET - Java
• Dev – DBA Microsoft, SyBase, IBM & Oracle
• Speaker Latam “Microsoft, Avanet, FirstCloud,
ShareCol” & USA “ITProCamp”
• SQL Server MCP – MSTS – MTA
• Contributing Technical Reviewer Packt Publishing
Microsoft SQL Server MVP | CEO EntornoDB | DPA SolidQ
5. Agenda
• Fundamentos básicos de In-
Memory OLTP
• Primera etapa:
• In-Memory OLTP en
Microsoft SQL Server 2014
• Etapa siguiente:
• La siguiente ruta: In-Memory
OLTP en Microsoft SQL
Server 2016
8. Arquitectura
Integración de SQL Server
• Misma experiencia de
gestión, administración y
desarrollo
• Consultas y transacciones
Integradas
• 'HA' (High Availability)
integrada y
Backup/Restore
Memoria principal
optimizada
• Punteros directos a filas
• Índices sólo existen en
memoria
• Sin pool en buffers
• Sin registro de escritura
anticipada
• Almacenamiento de
información basada en
Stream
Ejecución sin bloqueo
• Multi-versión de control
de concurrencia
optimista, soporte
completo de ACID
• Estructuras de datos sin
bloqueo
• Sin bloqueos, latches o
spinlocks,
• Ninguna I/O en
transacción
T-SQL compilado en
código máquina nativo
• T-SQL compilado a
código máquina
aprovechando el
compilador de VC
• Procedimiento y sus
queries, se convierte en
una función de C
• Optimizaciones de
tiempo de compilación
agresivas
ArquitecturaSolución
Motor híbrido y
experiencia integrado
Velocidad de caché en
memoria con capacidades
de una base de datos
Las transacciones se
ejecutan hasta el final sin
bloqueos
Queries y la lógica de
negocio funcionan a la
velocidad de código nativo
Bases
Datos de rendimiento
crítico se adaptan en la
memoria
Los conflictos son poco
comunes
Fuerza de decisión en
tiempo de compilación
Integrado
10. SQL Server 2014 In-Memory OLTP
• Anteriormente llamado
“Hekaton” en fase beta.
• Liberado en SQL
Server 2014
11. SQL Server 2014 In-Memory OLTP
• Valor agregado:
• Rendimiento OLTP
(Hasta 30x) debido a
• Alta escalabilidad:
Arquitectura sin
bloqueos ni
obstrucciones
permitiendo
escalamiento lineal
• Acceso eficiente a datos
y Procesamiento de
consultas: Estructuras de
datos en memoria
optimizada y
compilación nativa
12. SQL Server 2014 In-Memory OLTP
• Valor agregado:
• Integrado en SQL Server
permitiendo reducción del
TCO
• Parte de la edición Enterprise
• La misma base de datos puede
estar tanto en la memoria así
como en disco
• Experiencia integrada tanto del
desarrollador así como del
DBA: T-SQL, Client Stack,
Tooling, Backup/Restore,
AlwaysOn...
13. SQL Server 2014 In-Memory OLTP
• Escenarios vitales: Aplicaciones
OLTP de alto rendimiento y
escalado
14. Conjunto de características de SQL 2014
• Tablas optimizadas en
Memoria
• Tablas perdurables
(Predeterminado) están
completamente
conectadas y persistente
• Tablas no duraderas
fungiendo como
"geniales" tablas
temporales globales en
base de datos de usuario
15. Conjunto de características de SQL 2014
• Procedimientos Almacenados
nativamente compilados
• Comandos comunes SQL bajo
escenarios OLTP (Select - Insert
- Delete - Update), Manejo de
excepciones de errores y más
• Operadores más utilizados,
órdenes internas (MATH, String,
Identity) entre otros
• Ejecución de consultas
comunes – Joins, GroupBy,
OrderBy, TOP, SORT, Table,
Query, Join Hints y muchas
más
16. Conjunto de características de SQL 2014
• Interoperabilidad en el acceso a tablas de memoria optimizada
• Area de superficie de los queries T-SQL casi completa
17. Conjunto de características de SQL 2014
• Tipos de tabla optimizada en memoria
• Utilizar variables de tabla de memoria optimizado para mitigar la contención de TempDB
20. 16x mas transacciones por segundo &
340x de reducción en tiempos
visualizado con In-Memory
Con In-Memory OLTP
& ColumnStore
Antes
Gaming App Gaming App ReportingReporting
Reports in
17 min
15,000
requests/sec
Reports in
3 sec
250,000
requests/sec
21. Ajuste por registro validando relación
Costo-Beneficio con tecnología In-Memory
40%
de costo
800%
de ejecución
teniendo una ganancia con
el mismo HW
en rendimiento en
la misma
configuración
4x
de ejecución
24x
de incremento
40%
de costo
24. SQL Server 2014
Limitación: Tamaño de la sostenibilidad y persistencia de una
tabla en una base de datos <= 256 GB
Desafío del Cliente:
Tamaño de tablas en memoria
25. Desafío
• El rendimiento critico de mi(s) tabla(s) requerirá > 256GB
• El rendimiento critico de mis tablas son de < 256GB PERO pueden
excederse a este limite en el futuro
Desafío del Cliente:
Tamaño de tablas en memoria
26. SQL Server 2016
• Soporta 2TB de sostenibilidad por tabla(s) en la base de
datos
• Cliente puede resolver la limitación de tamaño mediante la
adición de más memoria al servidor físico
Desafío del Cliente:
Tamaño de tablas en memoria
27. SQL Server 2014
Desafío: Almacenamiento de registros eliminados que son
recolectado de la basura
Es lento debido al paso adicional con FileStream
Desafío del Cliente:
Administración de almacenamiento de información
28. SQL Server 2016
• Gestión de almacenamiento es disociada del FileStream
• Archivo(s) no utilizado(s) se puede volver a utilizar
inmediatamente después de que se hace referencia en el
registro de transacciones (Log Transaction)
Desafío del Cliente:
Administración de almacenamiento de información
29. SQL Server 2014
Limitación: No la Encriptación de Datos
Transparente (TDE)
Desafío del Cliente: Seguridad (TDE)
30. Desafío
• Mis tablas de rendimiento crítico tienen información
sensible que debe ser protegida mediante TDE
Desafío del Cliente: Seguridad (TDE)
31. SQL Server 2016
• Soportes de TDE para las tablas de memoria optimizadas
• Actualización de base de datos :
• Turn off
• TDE ->
• Drop the keys ->
• Create New keys->
• Turn on
Desafío del Cliente: Seguridad (TDE)
32. •SQL Server 2014
Limitación: Escala limitada > (2 socket/64-cores)
Desafío del cliente: Escala de almacenamiento
Single Offline Checkpoint Thread
Del Tran2
(TS 450)
Del Tran3
(TS 250)
Del Tran1
(TS150)
Insert into
Hekaton T1
Log in SQL
Table
Del Tran1
(TS150)
Del Tran2
(TS 450)
Del Tran3
(TS 250)
Insert into
Hekaton T1
SQL
Transaction
Log
Disco
33. SQL Server 2016
• Múltiples hilos Checkpoint fuera de línea (Offline)
• Uno por contenedor
Desafío del cliente: Escala de almacenamiento
Single Offline Checkpoint Thread
Del Tran2
(TS 450)
Del Tran3
(TS 250)
Del Tran1
(TS150)
Insert into
Hekaton T1
Log in SQL
Table
Del Tran1
(TS150)
Del Tran2
(TS 450)
Del Tran3
(TS 250)
Insert into
Hekaton T1
SQL
Transaction
Log
Disco
Single Offline Checkpoint Thread Single Offline Checkpoint Thread
35. Retos y Desafíos de las Aplicaciones
• Desarrollo o Modificación de las
aplicaciones actuales
• Métodos iterativo Agile de
desarrollo
• Tuning de bases de datos de las
aplicaciones
• Respondiendo a los cambios de
patrones de datos
• Necesidad de ser capaces de
modificar los Schema de las
base de datos
36. Soporte al comando T-SQL “ALTER”
• ALTER PROC y sp_recompile
suportado
• Online
• ALTER TABLE para Schema y
cambios en los índices
• Soporte en los cambios
completos de Schema:
• Add
• Alter
• Drop Column
• Constraint
37. Soporte al comando T-SQL “ALTER”
• Operaciones de Índices
• Add/Drop de índices soportados
• Cambios en los índices HASH
bucket_count a través de la
ejecución del comando REBUILD
• Nueva sintaxis para ALTER TABLE ….
ADD/DROP/ALTER INDEX
• ALTER TABLE es una operación
fuera de línea; requiere 2X de
memoria
• sp_rename todavía no esta
soportado
39. Desafío:
Informes de consultas de tablas en memoria
• SQL Server 2014 utiliza planes de ejecución (Consultas) de
serie para todas las consultas tocando tablas In-Memory
40. Desafío:
Informes de consultas de tablas en memoria
• SQL Server 2016 ahora permite consultas que tocan tablas
In-Memory utilizando planes paralelos.
43. Código generado con Entity-Framework y
aplicaciones ISV (Independent Software Vendor)
• Multiple Active Result Sets (MARS)
• Soporte en el diseñador de tablas en SSMS
44. Cómodo escenario para Migración de
aplicaciones
• Migración asistida para Procedimientos Almacenados
• Asistente de migración indican que limitaciones son fáciles, y
cuales serían las difíciles de solucionar
• Soporte del analizador de mejores prácticas
45. Amplia gama de soporte para el
Collation e Idiomas
• Collations no aplicable "BIN2" en columnas de clave de
índice
• Code Pages no aplicable "Latin" para columnas (VAR)Char
• Collations no aplicable "BIN2" para comparaciones y
clasificaciones en módulos nativos
46. Aumento de capacidades de la Plataforma
• In-Memory OLTP en Azure SQL DB
• Ahora como Private Preview
• Este verano como Public Preview