SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
Foro Microsoft
Big Data y Analytics
Filtrar > Decidir > Acertar
Nunca fue más fácil
Nuevo motor relacional In-
Memory OLTP en SQL Server
2014
Enrique Catalá Bañuls (@enriquecatala)
ecatala@solidq.com
MVP – MCT – Mentor en SolidQ
Únete a PASS Spain
Comunidad Española de SQL Server
• Noticias
• Webcasts
• Charlas
• Foro, dudas…
https://www.facebook.com/PASSspanish
SolidQ Summit
Madrid 2014
20, 21, 22 Mayo 2014
• 2 Tracks SQL,BI ,Big Data
• 3 jornadas
• 30 sesiones técnicas
• Mentores de SolidQ
http://summit.solidq.com http://www.gusenet.org
23 charlas variadas
BI, SQL, C#, MVC,
angular, Javascript,
Kinect, NancyFx, Dev, …
Agenda
Motivación
Arquitectura
Uso de In-Memory OLTP
Coexistencia con otras tecnologías
Aplicaciones prácticas
1. Reducir el número de
ciclos por instrucción
2. Mejorar la escalabilidad
(uso de recursos HW
mejor aprovechados)
3. Disminuir el número de
instrucciones ejecutadas
por petición
Aumentar
rendimiento
100x
Motivación
Motivación
Rendimiento por core se apalancaCoste de memoria disminuye
$/GB de Memoria
1
10
100
1.000
10.000
100.000
1.000.000
1990
1991
1992
1993
1994
1994
1995
1996
1997
1998
1999
2000
2000
2001
2002
2004
2005
2007
2008
2009
2011
US$/GB
0
1
10
100
1.000
10.000
100.000
1.000.000
10.000.000
1970 1975 1980 1985 1990 1995 2000 2005 2010
Motivación: Limitaciones
Tablas on-disk
Page
Latch
Agenda
Motivación
Arquitectura
Uso de In-Memory OLTP
Coexistencia con otras tecnlogías
Aplicaciones prácticas
In-Memory en motor relacional
In-Memory OLTP
• 5-30x rendimiento en OLTP
• Integrado en SQL Server
In-Memory DataWarehouse
• 5-25x rendimiento
• Elevada compression
• Soporta clustered y escrituras
SSD Buffer pool extension
• Mejora transparente
• Hasta 3x rendimiento
Aplicación directa en cargas de trabajo
Entornos OLTP altamente
concurrentes
Entornos BI con DW
grandes y agregaciones
masivas
Entornos transaccionales
sobre OnDisk de grandes
volúmenes de datos
Pilares de In-Memory OLTP
Integracion completa
• T-SQL conocido
• Mismas herramientas
• Integrado
completamente en SQL
Server (sin licencia
extra)
Optimizado para memoria
RAM
• Nuevas estructuras de
almacenamiento
• Sin Buffer Pool
• Punteros a datos
• Todo son índices de
cobertura
Alta concurrencia
• Gestión de concurrencia
optimista multiversion
• Soporte ACID
• Nuevo motor con
algorimos lock-free
• Sin latches
T-SQL supereficiente
• T-SQL compilado a
código máquina en C
• Los SP son DLL
• Compilaciones
superagresivas a código
máquina
Integración
Memory-optimized table
filegroup Data filegroup
SQL Server.exe
In-memory OLTP engine for memory-
optimized tables and indexes
TDS handler and session management
Natively compiled SPs
and schema
Buffer pool for tables and indexes
Proc/plan cache for ad-hoc T-SQL
and SPs
Transaction log
Query interoperability
Non-durable
table T1 T4T3T2
T1 T4T3T2
T1 T4T3T2
T1 T4T3T2
Tables
Indexes
Interpreter for TSQL, query plans,
expressions
T1 T4T3T2
T1 T4T3T2
Checkpoint and recovery
Access methods
Parser,
Catalog,
Algebrizer,
Optimizer
In-Memory
OLTP Compiler
In-Memory
OLTP
component
Key
Existing SQL
component
Generated .dll
Client app
Ventajas In-Memory
Tablas on-disk
Page
Latch
Tablas in-memory
Concurrencia en In-Memory OLTP
Sin bloqueos
• Sin lock, latches
• Sin deadlocks
• Mínimo context switch
• Requiere gestión de
excepciones
Multiversionado
Alta concurrencia
• Se consigue el máximo
aprovechamiento HW
• Cuanta mas carga,
mayor rendimiento
comparable
• Solo se registran
commits
Aislamiento basado en
snapshot
• No se usa tempdb
• Duplicación temporal
de filas
Concurrencia optimista
Agenda
Motivación
Arquitectura
Uso de In-Memory OLTP
Coexistencia con otras tecnlogías
Aplicaciones prácticas
Aumentos de rendimiento
In-Memory
OLTP
Compiler
In-Memory
OLTP
component
Memory-optimized table
filegroup
Data filegroup
SQL Server.exe
In-Memory OLTP engine for
memory-optimized tables and
indexes
TDS handler and session management
Natively compiled
SPs and schema
Buffer pool for tables and
indexes
Proc/plan cache for ad-hoc T-
SQL and SPs
Client app
Transaction log
Interpreter for TSQL, query
plans, and expressions
Query
interop
Access methods
Parser,
Catalog,
Algebrizer,
Optimizer
10-30x mas eficiente
Reducción de consumo
de log
Checkpoints
secuenciales y en
background
Sin mejoras en pila de
llamadas, paso de
parámetros o devolución
de resultados
Key
Existing SQL
component
Generated .dll
Aprovechamiento de In-Memory OLTP
Modo interpretado
• Hasta 3x de mejora de rendimiento
• Cuidado, podemos empeorar
• No requiere adaptar código
• Sintaxis completa
• Objetos in-memory y on-disk
• Recomendado para:
• Adhoc
• Migraciones rápidas a In-
Memory
Modo Nativo
• De 5x a 30x mejora de rendimiento
• En el caso peor 2x
• Adaptar stored procedures
• Sintaxis limitada
• Solo objetos in-memory
• Recomendado para:
• OLTP alto rendimiento
• Logica de negocio crítica
Agenda
Motivación
Arquitectura
Uso de In-Memory OLTP
Coexistencia con otras tecnologías
Aplicaciones prácticas
Soportado
Parcialmente soportado
No soportado
• AlwaysON
• FCI
• Log Shipping
• Resource Governor
• Integration services
• Dacpac y bacpack
• Replicación transaccional (p2p no soportada)
• Instancia: TDE, MARS, CDC (se puede pero no recomendado)
• Objetos in-memory con Particionado, compresion, linked server, CT
Soporte de In-Memory en SQL Server
Tablas
Procedimientos
almacenados nativos
• CASE
• Subqueries
• OR
• Outer join
• Funciones de Sistema limitadas a matematicas ,date/time y texto
Limitaciones en In-Memory OLTP 2014
• Triggers DDL/DML
• Tipos de datos LOB, XML o CLR
• Foreign key o check constraints
• ALTER TABLE
• Añadir/quitar nuevos índices
Agenda
Motivación
Arquitectura
Uso de In-Memory OLTP
Coexistencia con otras tecnologías
Aplicaciones prácticas
26
Escenarios comunes de implementación In-Memory OLTP
Alto volumen de
inserción de datos
Alto volumen de
procesamiento
durante inserción
Alto volumen de
lecturas
Nuevos escenarios
• Escenario “shock absorver”
• Cargas masivas a DW
• Escenarios con tablas staging
• Similar al anterior
• *Lógica compleja en SP
• Caché transaccional
• Gestion de sesiones
• Zonas críticas que antes no se
podían poner en base de datos
relacional (generalmente por no
poderse escalar verticalmente)
• Sistemas altamente estresados
por peticiones de lecturas
• Las tablas de elevado % de
lecturas pueden ser cuello de
botella por LATCH_SH
Conclusiones
27
• Nuevo motor totalmente integrado y sin coste añadido
• Mejoras de rendimiento de hasta 30x
• Permite exprimir eficientemente tu HW actual
• Tus conocimientos T-SQL son perfectamente válidos
Enrique Catalá Bañuls
(@enriquecatala)
ecatala@solidq.com
www.enriquecatala.com
MVP – MCT – Mentor en SolidQ
In-Memory OLTP en SQL Server 2014

Más contenido relacionado

La actualidad más candente

Top BI Enhancements for Sql Server 2012
Top BI Enhancements for Sql Server 2012Top BI Enhancements for Sql Server 2012
Top BI Enhancements for Sql Server 2012
BILATAM
 

La actualidad más candente (20)

avanttic Tech Dates - Facilidad contratación Oracle a través de acuerdos marc...
avanttic Tech Dates - Facilidad contratación Oracle a través de acuerdos marc...avanttic Tech Dates - Facilidad contratación Oracle a través de acuerdos marc...
avanttic Tech Dates - Facilidad contratación Oracle a través de acuerdos marc...
 
Migración de Oracle a PostgreSQL
Migración de Oracle a PostgreSQLMigración de Oracle a PostgreSQL
Migración de Oracle a PostgreSQL
 
Presentación corporativa
Presentación corporativaPresentación corporativa
Presentación corporativa
 
Oracle GG presentacion
Oracle GG presentacionOracle GG presentacion
Oracle GG presentacion
 
Producción global, subcontratación y logística - Vega Christopher
Producción global, subcontratación y logística  - Vega ChristopherProducción global, subcontratación y logística  - Vega Christopher
Producción global, subcontratación y logística - Vega Christopher
 
DynamoDB, análisis del paper.
DynamoDB, análisis del paper.DynamoDB, análisis del paper.
DynamoDB, análisis del paper.
 
SQL Server Analysis Services
SQL Server Analysis ServicesSQL Server Analysis Services
SQL Server Analysis Services
 
Azure Realtime analytics: Análisis de datos en tiempo real
Azure Realtime analytics: Análisis de datos en tiempo realAzure Realtime analytics: Análisis de datos en tiempo real
Azure Realtime analytics: Análisis de datos en tiempo real
 
Tgs ss-the globalcloud-r01
Tgs ss-the globalcloud-r01Tgs ss-the globalcloud-r01
Tgs ss-the globalcloud-r01
 
Global azure bootcamp SQL Azure End to End
Global azure bootcamp   SQL Azure End to End Global azure bootcamp   SQL Azure End to End
Global azure bootcamp SQL Azure End to End
 
PostgreSQL vs MySQL: PostgreSQL como alternativa.
PostgreSQL vs MySQL: PostgreSQL como alternativa.PostgreSQL vs MySQL: PostgreSQL como alternativa.
PostgreSQL vs MySQL: PostgreSQL como alternativa.
 
Codemotion: descubriendo las cachés
Codemotion: descubriendo las cachésCodemotion: descubriendo las cachés
Codemotion: descubriendo las cachés
 
Top BI Enhancements for Sql Server 2012
Top BI Enhancements for Sql Server 2012Top BI Enhancements for Sql Server 2012
Top BI Enhancements for Sql Server 2012
 
¿Por que cambiar de Apache Hadoop a Apache Spark?
¿Por que cambiar de Apache Hadoop a Apache Spark?¿Por que cambiar de Apache Hadoop a Apache Spark?
¿Por que cambiar de Apache Hadoop a Apache Spark?
 
Big data con Hadoop y SSIS 2016
Big data con Hadoop y SSIS 2016Big data con Hadoop y SSIS 2016
Big data con Hadoop y SSIS 2016
 
Primeros pasos con Apache Spark - Madrid Meetup
Primeros pasos con Apache Spark - Madrid MeetupPrimeros pasos con Apache Spark - Madrid Meetup
Primeros pasos con Apache Spark - Madrid Meetup
 
Arquitectura Multitenant en Oracle 12c
Arquitectura Multitenant en Oracle 12cArquitectura Multitenant en Oracle 12c
Arquitectura Multitenant en Oracle 12c
 
Instalando Datastax Analytics (Cassandra Y Spark) Con Azure Templates
Instalando Datastax Analytics (Cassandra Y Spark) Con Azure TemplatesInstalando Datastax Analytics (Cassandra Y Spark) Con Azure Templates
Instalando Datastax Analytics (Cassandra Y Spark) Con Azure Templates
 
Tutorial en Apache Spark - Clasificando tweets en realtime
Tutorial en Apache Spark - Clasificando tweets en realtimeTutorial en Apache Spark - Clasificando tweets en realtime
Tutorial en Apache Spark - Clasificando tweets en realtime
 
Un viaje a la observabilidad
Un viaje a la observabilidadUn viaje a la observabilidad
Un viaje a la observabilidad
 

Similar a In-Memory OLTP en SQL Server 2014

Introducción a bases de datos en memoria oltp
Introducción a bases de datos en memoria oltpIntroducción a bases de datos en memoria oltp
Introducción a bases de datos en memoria oltp
Eliana Caraballo
 
24 HOP edición Español - Optimizacion de motores sql server desde el codigo h...
24 HOP edición Español - Optimizacion de motores sql server desde el codigo h...24 HOP edición Español - Optimizacion de motores sql server desde el codigo h...
24 HOP edición Español - Optimizacion de motores sql server desde el codigo h...
SpanishPASSVC
 
SQL Server Fundamentals 3ra Sesion
SQL Server Fundamentals 3ra SesionSQL Server Fundamentals 3ra Sesion
SQL Server Fundamentals 3ra Sesion
Julián Castiblanco
 

Similar a In-Memory OLTP en SQL Server 2014 (20)

Cómo nos va a ayudar la tecnología de in memory en sql server 2014 para desem...
Cómo nos va a ayudar la tecnología de in memory en sql server 2014 para desem...Cómo nos va a ayudar la tecnología de in memory en sql server 2014 para desem...
Cómo nos va a ayudar la tecnología de in memory en sql server 2014 para desem...
 
In-Memory OLTP en SQL Server 2016
In-Memory OLTP en SQL Server 2016In-Memory OLTP en SQL Server 2016
In-Memory OLTP en SQL Server 2016
 
Nuevos escenarios BI con SQL Server 2014
Nuevos escenarios BI con SQL Server 2014Nuevos escenarios BI con SQL Server 2014
Nuevos escenarios BI con SQL Server 2014
 
SQL Server 2016 Tablas en Memoria
SQL Server 2016 Tablas en MemoriaSQL Server 2016 Tablas en Memoria
SQL Server 2016 Tablas en Memoria
 
Tech day sql server 2014 nuevas características - g-taylor
Tech day   sql server 2014 nuevas características - g-taylorTech day   sql server 2014 nuevas características - g-taylor
Tech day sql server 2014 nuevas características - g-taylor
 
Novedades de SQL Server 2014 en motor relacional
Novedades de SQL Server 2014 en motor relacionalNovedades de SQL Server 2014 en motor relacional
Novedades de SQL Server 2014 en motor relacional
 
Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014
Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014
Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014
 
Introducción a bases de datos en memoria oltp
Introducción a bases de datos en memoria oltpIntroducción a bases de datos en memoria oltp
Introducción a bases de datos en memoria oltp
 
BI real time analytics
BI real time analyticsBI real time analytics
BI real time analytics
 
In memory
In memoryIn memory
In memory
 
Carbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshareCarbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshare
 
24 HOP edición Español - Optimizacion de motores sql server desde el codigo h...
24 HOP edición Español - Optimizacion de motores sql server desde el codigo h...24 HOP edición Español - Optimizacion de motores sql server desde el codigo h...
24 HOP edición Español - Optimizacion de motores sql server desde el codigo h...
 
SQL Server Fundamentals 3ra Sesion
SQL Server Fundamentals 3ra SesionSQL Server Fundamentals 3ra Sesion
SQL Server Fundamentals 3ra Sesion
 
Web cast de optimización Sql Server - Arquitectura
Web cast de optimización Sql Server - ArquitecturaWeb cast de optimización Sql Server - Arquitectura
Web cast de optimización Sql Server - Arquitectura
 
Conociendo los cambios de SQL Server a partir de 2012 a 2016
Conociendo los cambios de SQL Server a partir de 2012 a 2016Conociendo los cambios de SQL Server a partir de 2012 a 2016
Conociendo los cambios de SQL Server a partir de 2012 a 2016
 
Optimización de motores sql server 24 horas SQL Pass
Optimización de motores sql server 24 horas SQL PassOptimización de motores sql server 24 horas SQL Pass
Optimización de motores sql server 24 horas SQL Pass
 
Integración de Oracle Data Integrator con Oracle GoldenGate 12c
Integración de Oracle Data Integrator  con Oracle GoldenGate 12cIntegración de Oracle Data Integrator  con Oracle GoldenGate 12c
Integración de Oracle Data Integrator con Oracle GoldenGate 12c
 
SQL Server 2014 y La Plataforma de Datos
SQL Server 2014 y La Plataforma de DatosSQL Server 2014 y La Plataforma de Datos
SQL Server 2014 y La Plataforma de Datos
 
Sql server 2014 y la plataforma de datos
Sql server 2014 y la plataforma de datosSql server 2014 y la plataforma de datos
Sql server 2014 y la plataforma de datos
 
SQL Server 2014 Nuevas Capacidades
SQL Server 2014  Nuevas CapacidadesSQL Server 2014  Nuevas Capacidades
SQL Server 2014 Nuevas Capacidades
 

Más de Enrique Catala Bañuls

Más de Enrique Catala Bañuls (20)

Sql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql serverSql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql server
 
Paralelismo en SQL Server
Paralelismo en SQL ServerParalelismo en SQL Server
Paralelismo en SQL Server
 
Aplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorAplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidor
 
Técnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql serverTécnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql server
 
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
 
Planes de ejecución 3.0 sql 2016 y v next
Planes de ejecución 3.0 sql 2016 y v nextPlanes de ejecución 3.0 sql 2016 y v next
Planes de ejecución 3.0 sql 2016 y v next
 
Paralelismo en sql server
Paralelismo en sql serverParalelismo en sql server
Paralelismo en sql server
 
Aplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorAplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidor
 
Query store
Query storeQuery store
Query store
 
Planes de ejecucion 2016
Planes de ejecucion 2016Planes de ejecucion 2016
Planes de ejecucion 2016
 
Dawarehouse como servicio en azure (sqldw)
Dawarehouse como servicio en azure (sqldw)Dawarehouse como servicio en azure (sqldw)
Dawarehouse como servicio en azure (sqldw)
 
Query store
Query storeQuery store
Query store
 
Planes de ejecucion 2
Planes de ejecucion 2Planes de ejecucion 2
Planes de ejecucion 2
 
Planes de ejecucion 1
Planes de ejecucion 1Planes de ejecucion 1
Planes de ejecucion 1
 
Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)
 
Como leer planes de ejecución - edición 2015
Como leer planes de ejecución - edición 2015Como leer planes de ejecución - edición 2015
Como leer planes de ejecución - edición 2015
 
HERRAMIENTA CASE PARA MODELADO DE ALMACENES DE DATOS BASADA EN LENGUAJES ESPE...
HERRAMIENTA CASE PARA MODELADO DE ALMACENES DE DATOS BASADA EN LENGUAJES ESPE...HERRAMIENTA CASE PARA MODELADO DE ALMACENES DE DATOS BASADA EN LENGUAJES ESPE...
HERRAMIENTA CASE PARA MODELADO DE ALMACENES DE DATOS BASADA EN LENGUAJES ESPE...
 
Escenarios híbridos con sql server 2014
Escenarios híbridos con sql server 2014Escenarios híbridos con sql server 2014
Escenarios híbridos con sql server 2014
 
Planes de ejecución en sql server 2014
Planes de ejecución en sql server 2014Planes de ejecución en sql server 2014
Planes de ejecución en sql server 2014
 
Transacciones diferidas
Transacciones diferidasTransacciones diferidas
Transacciones diferidas
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (11)

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 

In-Memory OLTP en SQL Server 2014

  • 1. Foro Microsoft Big Data y Analytics Filtrar > Decidir > Acertar Nunca fue más fácil
  • 2. Nuevo motor relacional In- Memory OLTP en SQL Server 2014 Enrique Catalá Bañuls (@enriquecatala) ecatala@solidq.com MVP – MCT – Mentor en SolidQ
  • 3. Únete a PASS Spain Comunidad Española de SQL Server • Noticias • Webcasts • Charlas • Foro, dudas… https://www.facebook.com/PASSspanish
  • 4.
  • 5. SolidQ Summit Madrid 2014 20, 21, 22 Mayo 2014 • 2 Tracks SQL,BI ,Big Data • 3 jornadas • 30 sesiones técnicas • Mentores de SolidQ http://summit.solidq.com http://www.gusenet.org 23 charlas variadas BI, SQL, C#, MVC, angular, Javascript, Kinect, NancyFx, Dev, …
  • 6. Agenda Motivación Arquitectura Uso de In-Memory OLTP Coexistencia con otras tecnologías Aplicaciones prácticas
  • 7. 1. Reducir el número de ciclos por instrucción 2. Mejorar la escalabilidad (uso de recursos HW mejor aprovechados) 3. Disminuir el número de instrucciones ejecutadas por petición Aumentar rendimiento 100x Motivación
  • 8. Motivación Rendimiento por core se apalancaCoste de memoria disminuye $/GB de Memoria 1 10 100 1.000 10.000 100.000 1.000.000 1990 1991 1992 1993 1994 1994 1995 1996 1997 1998 1999 2000 2000 2001 2002 2004 2005 2007 2008 2009 2011 US$/GB 0 1 10 100 1.000 10.000 100.000 1.000.000 10.000.000 1970 1975 1980 1985 1990 1995 2000 2005 2010
  • 10. Agenda Motivación Arquitectura Uso de In-Memory OLTP Coexistencia con otras tecnlogías Aplicaciones prácticas
  • 11. In-Memory en motor relacional In-Memory OLTP • 5-30x rendimiento en OLTP • Integrado en SQL Server In-Memory DataWarehouse • 5-25x rendimiento • Elevada compression • Soporta clustered y escrituras SSD Buffer pool extension • Mejora transparente • Hasta 3x rendimiento Aplicación directa en cargas de trabajo Entornos OLTP altamente concurrentes Entornos BI con DW grandes y agregaciones masivas Entornos transaccionales sobre OnDisk de grandes volúmenes de datos
  • 12. Pilares de In-Memory OLTP Integracion completa • T-SQL conocido • Mismas herramientas • Integrado completamente en SQL Server (sin licencia extra) Optimizado para memoria RAM • Nuevas estructuras de almacenamiento • Sin Buffer Pool • Punteros a datos • Todo son índices de cobertura Alta concurrencia • Gestión de concurrencia optimista multiversion • Soporte ACID • Nuevo motor con algorimos lock-free • Sin latches T-SQL supereficiente • T-SQL compilado a código máquina en C • Los SP son DLL • Compilaciones superagresivas a código máquina
  • 13. Integración Memory-optimized table filegroup Data filegroup SQL Server.exe In-memory OLTP engine for memory- optimized tables and indexes TDS handler and session management Natively compiled SPs and schema Buffer pool for tables and indexes Proc/plan cache for ad-hoc T-SQL and SPs Transaction log Query interoperability Non-durable table T1 T4T3T2 T1 T4T3T2 T1 T4T3T2 T1 T4T3T2 Tables Indexes Interpreter for TSQL, query plans, expressions T1 T4T3T2 T1 T4T3T2 Checkpoint and recovery Access methods Parser, Catalog, Algebrizer, Optimizer In-Memory OLTP Compiler In-Memory OLTP component Key Existing SQL component Generated .dll Client app
  • 15. Concurrencia en In-Memory OLTP Sin bloqueos • Sin lock, latches • Sin deadlocks • Mínimo context switch • Requiere gestión de excepciones Multiversionado Alta concurrencia • Se consigue el máximo aprovechamiento HW • Cuanta mas carga, mayor rendimiento comparable • Solo se registran commits Aislamiento basado en snapshot • No se usa tempdb • Duplicación temporal de filas Concurrencia optimista
  • 16. Agenda Motivación Arquitectura Uso de In-Memory OLTP Coexistencia con otras tecnlogías Aplicaciones prácticas
  • 17.
  • 18. Aumentos de rendimiento In-Memory OLTP Compiler In-Memory OLTP component Memory-optimized table filegroup Data filegroup SQL Server.exe In-Memory OLTP engine for memory-optimized tables and indexes TDS handler and session management Natively compiled SPs and schema Buffer pool for tables and indexes Proc/plan cache for ad-hoc T- SQL and SPs Client app Transaction log Interpreter for TSQL, query plans, and expressions Query interop Access methods Parser, Catalog, Algebrizer, Optimizer 10-30x mas eficiente Reducción de consumo de log Checkpoints secuenciales y en background Sin mejoras en pila de llamadas, paso de parámetros o devolución de resultados Key Existing SQL component Generated .dll
  • 19. Aprovechamiento de In-Memory OLTP Modo interpretado • Hasta 3x de mejora de rendimiento • Cuidado, podemos empeorar • No requiere adaptar código • Sintaxis completa • Objetos in-memory y on-disk • Recomendado para: • Adhoc • Migraciones rápidas a In- Memory Modo Nativo • De 5x a 30x mejora de rendimiento • En el caso peor 2x • Adaptar stored procedures • Sintaxis limitada • Solo objetos in-memory • Recomendado para: • OLTP alto rendimiento • Logica de negocio crítica
  • 20.
  • 21. Agenda Motivación Arquitectura Uso de In-Memory OLTP Coexistencia con otras tecnologías Aplicaciones prácticas
  • 22. Soportado Parcialmente soportado No soportado • AlwaysON • FCI • Log Shipping • Resource Governor • Integration services • Dacpac y bacpack • Replicación transaccional (p2p no soportada) • Instancia: TDE, MARS, CDC (se puede pero no recomendado) • Objetos in-memory con Particionado, compresion, linked server, CT Soporte de In-Memory en SQL Server
  • 23. Tablas Procedimientos almacenados nativos • CASE • Subqueries • OR • Outer join • Funciones de Sistema limitadas a matematicas ,date/time y texto Limitaciones en In-Memory OLTP 2014 • Triggers DDL/DML • Tipos de datos LOB, XML o CLR • Foreign key o check constraints • ALTER TABLE • Añadir/quitar nuevos índices
  • 24. Agenda Motivación Arquitectura Uso de In-Memory OLTP Coexistencia con otras tecnologías Aplicaciones prácticas
  • 25. 26 Escenarios comunes de implementación In-Memory OLTP Alto volumen de inserción de datos Alto volumen de procesamiento durante inserción Alto volumen de lecturas Nuevos escenarios • Escenario “shock absorver” • Cargas masivas a DW • Escenarios con tablas staging • Similar al anterior • *Lógica compleja en SP • Caché transaccional • Gestion de sesiones • Zonas críticas que antes no se podían poner en base de datos relacional (generalmente por no poderse escalar verticalmente) • Sistemas altamente estresados por peticiones de lecturas • Las tablas de elevado % de lecturas pueden ser cuello de botella por LATCH_SH
  • 26. Conclusiones 27 • Nuevo motor totalmente integrado y sin coste añadido • Mejoras de rendimiento de hasta 30x • Permite exprimir eficientemente tu HW actual • Tus conocimientos T-SQL son perfectamente válidos