MS SQL Server 2014 - In-Memory OLTP

63 %
38 %
Information about MS SQL Server 2014 - In-Memory OLTP
Technology

Published on April 27, 2014

Author: redondoj

Source: slideshare.net

Description

Sinopsis avanzada sobre la tecnología de base de datos en memoria optimizado para mejorar el rendimiento de las cargas de trabajo OLTP. De manera general, introduciremos los tópicos sobre las tablas de memoria que se optimizan con el fin de accesar los datos eficientemente, libre de contención y procedimientos almacenados nativamente compilados para una ejecución eficaz de lógica de negocio.

MS SQL Server 2014 In Memory OLTP José Redondo – Kenneth Ureña DPA SolidQ | SDP Bits America Colombia | SQL Server MVP – Database Manager Correo: redondoj@gmail.com – urecak@gmail.com Twitter: @redondoj - @sqlcr Blog: redondoj.wordpress.com – www.sqlcr.com

Expositor  Jose Redondo  DPA, SolidQ – Specialist Data Platform, BITS Americas Colombia  MCP | MCTS – MS SQL Server; MTA – DAF | MS SQL Server MVP

Diamond Sponsors Bronze Sponsors SQL Saturday Sponsors

MS SQL Server 2014 In Memory OLTP

AGENDA  Arquitectura  Objetos de trabajo  Requerimientos  Limitaciones  Herramientas para identificar escenarios candidatos

ARQUITECTURA

Conceptos  Conceptos  In-Memory  Libre de bloqueos (Versionamiento de registros)  Compilación Nativa de Procedimientos Almacenados

Optimización  Optimización en el almacenamiento de datos  Estructuras de datos optimizadas en memoria  Optimización del Registro de Transacciones  Escritura en bloque  No permite deshacer

Optimización  Optimización en el almacenamiento de datos  Optimización de los archivos de datos  Escritura secuencial  Combinación de escritura  Optimización de Índices  Solo In-Memory  No ejecuta persistencia en disco  No genera registro (Logging)  No utiliza la base de datos TempDB  Optimización del recolector de basura, ;-)

Comportamiento  Comportamiento en ejecución  Opción “Transitoria” “Breve” “Corta”

Mitos | Realidades  Mitos y Realidades  Mitos a. Igual a DBCC PINTABLE b. Si el servidor se bloquea, todos los datos se pierden  Realidades a. Nuevo diseño construido completamente desde cero b. Es persistente en disco. Recuperable totalmente

Sinopsis • Optimizado para datos In-Memory • Índices son en memoria • No hay pool de buffers. B-Tree • Almacenamiento basado en secuencias Memoria Principal Optimizada • T-SQL compilado a código maquina mediante generador de código C y VC • Llamar a un procedimiento seria solamente un DLL como punto de partida • Optimizaciones agresivas en tiempo de compilación T-SQL compilado a Código Maquina • Control de Multi-Versión de concurrencia optimista con soporte completo ACID • Núcleo del motor de datos utiliza algoritmos sin bloqueo • Ningún Administrador de Bloqueos, Latches o Spinlocks Alta Concurrencia • Misma experiencia tanto en el rol de administrador así como el de desarrollador • Consultas & transacciones integradas • Alta Disponibilidad integrada con Recuperación de Desastres (Copia de seguridad / Restauración) Integración con SQL Server

Estructura Tabular Data Stream (TDS) – Administración y Gestión de Sesiones Ejecución de Consultas T-SQL Pool de buffer para Tablas e Índices Parser, Catalogo y Optimizador Interoperabilidad de las Consultas Motor de Almacenamiento para Tablas e Índices Optimizados en Memoria Compilador Nativo de Procedimientos Almacenados y Schema Compilador Nativo In-Memory Memoria Optimizada para Tablas en Grupos de Archivos Registros de Transacciones Grupo de Archivos de Datos AplicaciónCliente SQLservr.exe Tipos de Componentes Claves Componente SQL DLL Generado Componente In-Memory OLTP

OBJETOS DE TRABAJO

Objetos de trabajo  Administración de la memoria  Estructuras de datos en memoria  Tablas de datos en memoria  Procedimientos Almacenados en memoria  Usando la arquitectura de libre bloqueo para versiones de registros  Niveles de aislamiento de transacciones  Recolector de basura en memoria

Administración de la memoria  Tablas residentes en memoria todo el tiempo  Sin paginación  Se debe configurar en las opciones de SQL con suficiente memoria para almacenar las tablas en memoria optimizada. Lo máximo soportado es de 512GB  La falta de asignación de memoria generara falla en la carga del trabajo transaccional en tiempo de ejecución

Estructuras de datos en memoria  Registros  Nuevo formato de registro  La estructura del registro es optimizada para residir y ser accesado en memoria  Una sola copia por registro  Los índices señalan a los registros, no duplicándolos  Índices  Índices HASH para búsquedas similares  Memoria optimizada B-Tree para la búsqueda de rangos e igualdades (En CTP2)  No existe en disco – Se recrean durante la recuperación

Tablas de datos en memoria  Necesidad de Filestream Filegroup (Grupo de archivos Filestream)

Creación de la base de datos CREATE DATABASE CostaRicaSS282_DB ON PRIMARY ( NAME = [CostaRicaSS282_DB_PRIMARY], FILENAME = 'C:CostaRicaSS282_testsqlservrdataCostaRicaSS282_DB_data.mdf„ ), FILEGROUP [CostaRicaSS282_DB_FG] CONTAINS MEMORY_OPTIMIZED_DATA ( NAME = [CostaRicaSS282_DB_DIR], FILENAME = 'C:CostaRicaSS282_testsqlservrdataCostaRicaSS282_DB_DIR„ ) LOG ON ( NAME = [CostaRicaSS282_DB_LOG], FILENAME='C:CostaRicaSS282_testsqlservrdataCostaRicaSS282_DB.ldf', SIZE=100MB )

Creación de la tabla DDL

Creación de la tabla DDL CREATE TABLE DDL Generación y Compilación del código Tabla DDL generada Tabla DDL cargada

Almacenamiento de la Tabla  Filestream es el mecanismo subyacente de almacenamiento de la información  Archivos de datos  Solamente se escriben los datos sobre “tx.commit()”  Delta Files  Almacenar los registros eliminados (Las actualizaciones se comporta como una inserción / eliminación según sea el caso)

 Se utiliza el registro de transacciones de SQL para almacenar contenido  Todo el registro es lógico  No hay registro para las modificaciones de estructuras físicas  No hay índices específicos / Mantenimiento de los índices en el registro de transacciones  No hay información para deshacer cuando se registra en el Log Registro de Transacciones (Logging)

Procedimientos Almacenados en memoria  Contexto Nativo  Compilado en lenguaje C y compilado en un archivo DLL usando VC (Visual C++)  Optimizado agresivamente en tiempo de compilación  Sólo pueden acceder a tablas en memoria  No todas las construcciones de T-SQL y funciones son soportadas  No es permitido modificar el Procedimiento Almacenado – Se deberá Eliminar y Recrearlo nuevamente

Procedimientos Almacenados en memoria  Generación CREATE PROC DDL Optimización de la consulta Generación y Compilación de Código Procedimiento DDL generada Procedimiento DDL cargada

Procedimientos Almacenados en memoria  Creación

Usando la arquitectura de libre bloqueo para versiones de registros  SQL Server 2014 - Bases de datos en memoria no tiene períodos de bloqueos  Las versiones de registros se usan para mantener las actualizaciones  No aplica "TempDB"  Las versiones de registros que ya no se hacen referencia, son basura a recogerse  Soporta niveles de aislamiento Snapshot (instantánea), Repeatable Read y Serializable

 Snapshot (Instantánea)  Las lecturas son consistentes a partir del inicio de la Transacción  Las Escrituras son siempre consistentes  Repeatable Read  Las operaciones de lectura ceden a las mismas versiones de registros, si se repiten en el momento de aplicarse  Serializable  Transacción que se ejecuta como si no hubieran transacciones concurrentes – Todas acciones suceden en un punto único de serialización (Commit Time) Niveles de aislamiento de transacciones

Recolector de basura en memoria  Versionamiento de registros  Actualizaciones, eliminaciones y las operaciones de inserción abortadas, crean versiones de fila que (Eventualmente) ya no son visibles para cualquier transacción  Análisis de estructuras de índice más lento  Crear memoria sin usar que necesita ser reclamada (Por ejemplo, Recogida de basura)

Recolector de basura en memoria  Recolector de basura (GC)  Análogo a la versión del "Store Cleanup Task for Disk" dando soporte al 'Read Committed Snapshot' (RCSI) directamente  El Sistema mantiene un hit de la transaccionabilidad activa más antigua en ejecución

Recolector de basura en memoria  Propósitos de diseño  No hay bloqueos, Es cooperacional, Eficiente, Responsivo, Escalable  Las transacciones activas trabajan de manera cooperativa y recoger todos los elementos de trabajo del GC  Ser subproceso del sistema dedicado a hacer GC

DEMO

REQUERIMIENTOS

Requerimientos  Utiliza todo el ecosistema existente de Hardware  Funciona perfectamente con todos los objetos de SQL Server en la actualidad  Es compatible con ACID  Se pueden mezclar tablas basadas en memoria y en disco en la misma base de datos  Las transacciones pueden abarcar tanto en memoria y como en disco basado en tablas

Requerimientos  No, no puede tener tablas particionadas en memoria  Sí, se puede y esta permitido llenar al 100% en memoria los objetos a utilizar en el servidor  También podemos limitar cuánta memoria es utilizada por las tablas en memoria (Pensado para las agrupaciones [Pool] de recursos)  Sí, podemos tener y aplicar Alta Disponibilidad

DEMO

LIMITACIONES

Limitaciones  El tamaño de los registros (Filas) no pueden ser mayores de 8060 bytes (Incluyendo las columnas con tipo de datos de longitud 'Variable')  No se admiten los tipos de datos Datatimeoffset, Geo, Jerárquicos, LOB, UDTs, NText, Varchar(MAX), SQL_Variant y XML  No es permitido utilizar Clave Externa ('Foreing Key'), Unique y las restricciones 'Check'  Tampoco se admiten Columnas de Identidad y las Secuencias  El almacenamiento FILESTREAM no es soportado

Limitaciones  No hay desencadenadores 'Triggers' DML  No ALTER TABLE (Es necesaria el recrear la tabla)  No se permite agregar o quitar ningún índice (Es necesaria el recrear la tabla)  Los índices pueden ser reconstruidos 'REBUILD INDEX' (Consideren el tiempo de inicio del proceso)  Índice Clustered no son soportado  Las tablas como memoria optimizada soportan un máximo de ocho índices  Los Índices de Almacenamiento Columnar no son soportados  La compresión de los datos no es soportada

Limitaciones  Database Mirroring no esta soportado  La opción AUTO_CLOSE no es soportado  Database Snapshots no es soportado  No Copias de Seguridad diferenciales  DBCC (CHECKDB & CHECKTABLE) no trabaja bajo este contexto  ROWGUIDCOL no son soportado  Los archivos en disco son combinados ('Fusionan') mientras se están cargando  Ejecutando fuera de memoria  Multiple Active Result Sets (MARS) y el Change Data Capture no es soportado

HERRAMIENTAS PARA IDENTIFICAR ESCENARIOS CANDIDATOS

Herramientas para identificar escenarios candidatos  Herramientas (AMR) – Analizar, Migrar y Reportar  SSMS  Management Data Warehouse (MDW)  Data Collection

DEMO

PREGUNTAS & RESPUESTAS

MS SQL Server 2014 In Memory OLTP Jose Redondo – MS SQL Server MVP Correo: redondoj@gmail.com Twitter: @redondoj Blog: redondoj.wordpress.com

MS SQL Server 2014 In Memory OLTP Kenneth Ureña – MCSA, MCTS, MCITP, MTC Correo: urecak@gmail.com Twitter: @sqlcr Blog: www.sqlcr.com

Los invitamos al

Muchas gracias por su participación

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

In-Memory OLTP (Arbeitsspeicheroptimierung)

SQL Server 2014 wurde in In-Memory OLTP neu eingeführt und kann die Leistung der OLTP-Datenbank erheblich verbessern. In-Memory OLTP ist ein ...
Read more

OLTP and Database Management | Microsoft

Deliver speed and high-availability performance with online transaction processing and database management from Microsoft. Plus, learn about OLTP database ...
Read more

In-Memory OLTP (In-Memory Optimization)

THIS TOPIC APPLIES TO: SQL Server (starting with 2016) Azure SQL Database Azure SQL Data Warehouse Parallel Data Warehouse
Read more

SQL Server In-Memory OLTP Internals Overview

... SQL Server 2014 Summary: In-Memory OLTP ... the SQL Server team at Microsoft began building a database engine optimized for large main memories and ...
Read more

SQL Server 2014: In-Memory OLTP - Business Intelligence ...

Aktuelle Information zum Microsoft SQL Server, Business Intelligence, Events und Veranstaltungen.
Read more

SQL Server 2014 In Memory OLTP: Memory-Optimized Table ...

Nice to see that SQL Server 2014 UI, colors, icons, etc. is not affected by the ugly and unuseable Windows 8, Visual Studio 2013 or Metro UI design.
Read more

Microsoft SQL Server 2014: In-Memory OLTP Overview ...

DBI-B287 In-Memory OLTP (formerly known as "Hekaton") is a key feature in the In-Memory offerings of SQL Server 2014. In this overview ...
Read more

Getting Started with SQL Server 2014 In-Memory OLTP | SQL ...

I 've implemented memory optimized table in CPT version of SQL 2014 and based on my observation its very good in performance when I inserted ...
Read more

In-Memory OLTP - MS SQL Server 2014 - Informatik Aktuell

Mit „In-Memory OLTP“ hat Microsoft neue Wege beschritten und erreicht damit eine signifikante ... konnte nun im Microsoft SQL Server 2014 umgesetzt ...
Read more

SQL Server 2014 In-Memory OLTP Architecture and Data Storage

By: Arshad Ali | Read Comments (10) | Related Tips: More > In-Memory OLTP Problem. Microsoft is releasing SQL Server 2014 with a new set of In-Memory OLTP ...
Read more