Download - In-Memory OLTP en SQL Server 2016
![Page 1: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/1.jpg)
![Page 2: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/2.jpg)
Microsoft Data PlatformAvanet
Jose RedondoMicrosoft SQL Server MVP | CEO EntornoDB | DPA SolidQ
[email protected] | @redondoj | redondoj.wordpress.com
In-Memory OLTP en SQL Server 2016
![Page 3: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/3.jpg)
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
![Page 4: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/4.jpg)
In-Memory OLTP en SQL Server 2016
![Page 5: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/5.jpg)
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
![Page 6: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/6.jpg)
Fundamentos básicos deIn-Memory OLTP
![Page 7: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/7.jpg)
Preferencias de Hardware
19
90
19
91
19
92
19
93
19
94
19
95
19
96
19
97
19
98
19
98
20
00
20
01
20
01
20
02
20
04
20
07
20
08
20
09
20
10
110
1001000
10000100000
1000000
$ Por GB de PC Class Memory
US$/G
B
Según La Ley de Moore, el poder de procesamiento total de la CPU se
mantiene PERO en el procesamiento paralelo...
La velocidad del CPU se tarificaría no
ajustadamente
Porque los procesadores generarian problemas
Mientras tanto
continúa bajando costo
de la memoria RAM
Las nuevas CPU no permitirán ejecutar
una transacción corta mas rápido
![Page 8: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/8.jpg)
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
Arq
uit
ectu
raS
olu
ció
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
![Page 9: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/9.jpg)
Primera etapa: In-Memory OLTP en Microsoft SQL Server 2014
![Page 10: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/10.jpg)
SQL Server 2014 In-Memory OLTP
• Anteriormente llamado “Hekaton” en fase beta. • Liberado en SQL Server 2014
![Page 11: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/11.jpg)
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
![Page 12: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/12.jpg)
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...
![Page 13: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/13.jpg)
SQL Server 2014 In-Memory OLTP
• Escenarios vitales: Aplicaciones OLTP de alto rendimiento y escalado
![Page 14: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/14.jpg)
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
![Page 15: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/15.jpg)
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
![Page 16: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/16.jpg)
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
![Page 17: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/17.jpg)
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
![Page 18: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/18.jpg)
Casos de Éxito
![Page 19: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/19.jpg)
Antes Con tecnología In-Memory
Sincronización asincrónica diaria
Minoristas en línea
Cercano a la sincronización en tiempo
real
Minoristas en línea
Clientes
Clientes
7x rendimiento más rápidoPermite actualizaciones en tiempo real
Beneficios claves Aumento de las ventas con mayor
rendimiento y satisfacción del cliente mejorada
7x de rendimiento habilita en tiempo real actualizaciones de existencias e inventarios
Los clientes pueden acceder a los datos durante las actualizaciones
![Page 20: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/20.jpg)
16x mas transacciones por segundo &340x de reducción en tiempos visualizado con In-Memory
Con In-Memory OLTP & ColumnStore
Antes
Solution
Gaming App
Gaming App
ReportingReporting
Reports in
17 min
15,000 requests/sec
Reports in
3 sec
250,000 requests/sec
![Page 21: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/21.jpg)
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
Considera incremento del 800% en solicitudes por segundo como ganancias utilizando In-Memory OLTP de SQL Server bajo IBM System x3850 X6
en rendimiento en la misma
configuración
24x de incremento en rendimiento con LSI Nytro WarpDrive y SQL Server 2014 In-Memory OLTP en comparación con la misma configuración con SQL Server 2012
Mayor rendimiento de SQL Server 2014 In-Memory OLTP bajo 4x con ioDrive2 Duo 2.4TB HW
4xde ejecución
24xde
incremento40%de costo
![Page 22: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/22.jpg)
Demo
![Page 23: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/23.jpg)
Etapa siguiente: La siguiente ruta: In-Memory OLTP
en Microsoft
SQL Server 2016
![Page 24: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/24.jpg)
SQL Server 2014Limitació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
![Page 25: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/25.jpg)
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
![Page 26: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/26.jpg)
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
![Page 27: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/27.jpg)
SQL Server 2014Desafí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
![Page 28: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/28.jpg)
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
![Page 29: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/29.jpg)
SQL Server 2014Limitación: No la Encriptación de Datos Transparente (TDE)
Desafío del Cliente: Seguridad (TDE)
![Page 30: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/30.jpg)
Desafío•Mis tablas de rendimiento crítico tienen información sensible que debe ser protegida mediante TDE
Desafío del Cliente: Seguridad (TDE)
![Page 31: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/31.jpg)
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)
![Page 32: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/32.jpg)
•SQL Server 2014Limitació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 Transacti
onLog
Disco
![Page 33: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/33.jpg)
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 Transacti
onLog
Disco
Single Offline Checkpoint Thread Single Offline Checkpoint Thread
![Page 34: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/34.jpg)
Incrementa la Compatibilidad
![Page 35: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/35.jpg)
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
![Page 36: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/36.jpg)
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
![Page 37: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/37.jpg)
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
![Page 38: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/38.jpg)
Demos
![Page 39: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/39.jpg)
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
![Page 40: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/40.jpg)
Desafío:Informes de consultas de tablas en memoria
• SQL Server 2016 ahora permite consultas que tocan tablas In-Memory utilizando planes paralelos.
![Page 41: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/41.jpg)
Convirtiendo aplicaciones existente
• {LEFT|RIGHT} OUTER JOIN• Disjunction (OR, NOT)• UNION [ALL]• SELECT DISTINCT• Subqueries (EXISTS, IN, scalar)• FOREIGN KEY• CHECK• UNIQUE constraints and indexes• Nested Stored procedures
(EXECUTE)• Natively compiled scalar UDFs• Indexes on NULLable columns
![Page 42: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/42.jpg)
Validaciones personalizadas
•DML Triggers en tablas en memoria optimizadas• AFTER Triggers, Nativamente compilado
![Page 43: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/43.jpg)
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
![Page 44: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/44.jpg)
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
![Page 45: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/45.jpg)
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
![Page 46: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/46.jpg)
Aumento de capacidades de la Plataforma
• In-Memory OLTP en Azure SQL DB• Ahora como Private Preview• Este verano como Public Preview
![Page 47: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/47.jpg)
Mejoras In-MemoryAnálisis operacional & Mejora del rendimiento
•
•
•
Misión de rendimiento crítico
![Page 48: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/48.jpg)
Mejoras In-MemoryAnálisis operacional & Mejora del rendimiento
•
•
•
•Misión de rendimiento crítico
![Page 49: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/49.jpg)
Demo
![Page 50: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/50.jpg)
Preguntas & Respuestas
![Page 51: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/51.jpg)
Jose RedondoMicrosoft SQL Server MVP | CEO EntornoDB | DPA [email protected] | @redondoj | redondoj.wordpress.com
![Page 52: In-Memory OLTP en SQL Server 2016](https://reader030.vdocuments.mx/reader030/viewer/2022020920/55ca14c9bb61eb4d098b47a3/html5/thumbnails/52.jpg)