In-Memory OLTP en SQL Server 2014

  • 373 views
Uploaded on

Con la llegada de SQL Server 2014 aparece un nuevo motor escrito totalmente desde 0 para aprovechar al máximo las capacidades del HW actual. En esta sesión veremos en qué consiste el nuevo motor en …

Con la llegada de SQL Server 2014 aparece un nuevo motor escrito totalmente desde 0 para aprovechar al máximo las capacidades del HW actual. En esta sesión veremos en qué consiste el nuevo motor en memoria para cargas OLTP de alto rendimiento

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
373
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
8
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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. 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, …
  • 5. Agenda Motivación Arquitectura Uso de In-Memory OLTP Coexistencia con otras tecnologías Aplicaciones prácticas
  • 6. 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
  • 7. 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
  • 8. Motivación: Limitaciones Tablas on-disk Page Latch
  • 9. Agenda Motivación Arquitectura Uso de In-Memory OLTP Coexistencia con otras tecnlogías Aplicaciones prácticas
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. Ventajas In-Memory Tablas on-disk Page Latch Tablas in-memory
  • 14. 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
  • 15. Agenda Motivación Arquitectura Uso de In-Memory OLTP Coexistencia con otras tecnlogías Aplicaciones prácticas
  • 16. 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
  • 17. 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
  • 18. Agenda Motivación Arquitectura Uso de In-Memory OLTP Coexistencia con otras tecnologías Aplicaciones prácticas
  • 19. 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
  • 20. 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
  • 21. Agenda Motivación Arquitectura Uso de In-Memory OLTP Coexistencia con otras tecnologías Aplicaciones prácticas
  • 22. 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
  • 23. 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
  • 24. Enrique Catalá Bañuls (@enriquecatala) ecatala@solidq.com www.enriquecatala.com MVP – MCT – Mentor en SolidQ