Date post: | 11-Aug-2015 |
Category: |
Technology |
Upload: | jose-redondo |
View: | 521 times |
Download: | 1 times |
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
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
In-Memory OLTP en SQL Server 2016
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
Fundamentos básicos deIn-Memory OLTP
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
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
Primera etapa: In-Memory OLTP en Microsoft SQL Server 2014
SQL Server 2014 In-Memory OLTP
• Anteriormente llamado “Hekaton” en fase beta. • Liberado en SQL Server 2014
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
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...
SQL Server 2014 In-Memory OLTP
• Escenarios vitales: Aplicaciones OLTP de alto rendimiento y escalado
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
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
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
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
Casos de Éxito
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
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
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
Demo
Etapa siguiente: La siguiente ruta: In-Memory OLTP
en Microsoft
SQL Server 2016
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
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
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
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
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
SQL Server 2014Limitación: No la Encriptación de Datos Transparente (TDE)
Desafío del Cliente: Seguridad (TDE)
Desafío•Mis tablas de rendimiento crítico tienen información sensible que debe ser protegida mediante TDE
Desafío del Cliente: Seguridad (TDE)
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)
•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
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
Incrementa la Compatibilidad
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
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
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
Demos
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
Desafío:Informes de consultas de tablas en memoria
• SQL Server 2016 ahora permite consultas que tocan tablas In-Memory utilizando planes paralelos.
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
Validaciones personalizadas
•DML Triggers en tablas en memoria optimizadas• AFTER Triggers, Nativamente compilado
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
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
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
Aumento de capacidades de la Plataforma
• In-Memory OLTP en Azure SQL DB• Ahora como Private Preview• Este verano como Public Preview
Mejoras In-MemoryAnálisis operacional & Mejora del rendimiento
•
•
•
Misión de rendimiento crítico
Mejoras In-MemoryAnálisis operacional & Mejora del rendimiento
•
•
•
•Misión de rendimiento crítico
Demo
Preguntas & Respuestas
Jose RedondoMicrosoft SQL Server MVP | CEO EntornoDB | DPA [email protected] | @redondoj | redondoj.wordpress.com