SlideShare une entreprise Scribd logo
1  sur  59
SQL Server 2016
Column Store Index
InMemory Tables OLTP
Bienvenida
• Ing. Eduardo Castro, PhD
• MVP de Microsoft SQL Server
• PASS Regional de Mentor
• PASS Board of Directors
• ecastro@simsasys.com
• http://www.youtube.com/eduardocastrom
Material de Referencia
SQL Server Evolution. SQL 2016 new innovations. Lindsey Allen
Principal Group Program Manager, Borko Novakovic
Program Manager
New in Master Data Services and Integration Services in SQL Server
2016. Matt Masson
SQL Server Evolution. Shawn Bice Engineering Partner Director
Operational Analytics in SQL Server. Sunil Agarwal Principal Program
Manager
Plataforma de misión crítica
Desempeño
Operational Analytics
• Reduciralmínimoimpactoenel
rendimientocorriendoanálisisen
tiemporealdedatosdela
transacción
• Evitarladispersióndedatos
InMemory OLTP para
más aplicaciones
Query Store
Seguridad
Always
Encrypted
Row level
security
Dynamic Data
Masking
Disponibilidad
Enhanced
AlwaysOn
• 3réplicassíncronaspara
failoverautomáticoatravésde
dominios
• elequilibriodecargaround
robin deréplicas
• DTCparalaintegridad
transaccional
atravésdeinstanciasdebase
conAlwaysOn
Mejoras en
operaciones en
línea
Escalabilidad
Soporte para
Windows Server 2016
12TB16sockets
SQL 2016 Mejoras
Acceder a cualquier
dato
PolyBase
Native JSON
Temporal database
support
Power Query for analytics
and reporting
Built-in Advanced
Analytics
Conocimiento del
negocio a través de
visualizaciones en
cualquier dispositivo
móvil
Escalar y gestionar
Enterprise-grade
Analysis Services
SSDT in
Visual Studio 2015
Enhanced MDS
Enhanced SSIS
Enhanced Reporting
Services
Las soluciones híbridas
Stretch tables en Azure
Power BI with on-premises
data
Escenarios híbridos con
SSIS
• AzureDataFactoryintegrationwithSSIS
• PackageLineageandimpactanalysis
• ConnectSSIStoclouddatasources
Mejoras en respaldohacia
Azure
• Xfasterrestoreand50%reductioninstorage
Mejor migraciónde SQL
Server OnPremiseshacia
Azure
Column Store Index
6
Mejoras en Column Store
• Artículo de Microsoft
http://bit.ly/sql2016-columnstore
.
.
.
C1 C
2
C3 C5C4
Columstore: cómo funciona?
10
beneficios:
• Mejora de la compresión:
Los datos del mismo dominio
comprimen mejor
• Reducción de E / S:
Traerá sólo las columnas
necesarias
• Desempeño mejorado:
Más datos caben en la memoria
Los datos almacenados
como filas
Column Store(índice)
Los datos almacenados como
columnas
Llav
e AlternateKey Nombre
Valore
s
1 AR-5381 Ajustable Carrera 1000
2 BA-8327 Cojinete Pelota 1000
3 BE-2349 Pelota Cojinete Jaula 800
4 BE-2908 Pelota Cojinete Grasa 800
5 BL-2036 Espada 800
6 CA-5965 LL Biela 500
7 CA-6738 ML Biela 500
Página 1 de
fila
almacenar
Página 2 de
fila
almacenar
Segmento
para
columna 1
Segmento
para
columna 2
Segmento
para
columna 3
Segmento
para
columna 4
RowStore vs. Column Store
Clustered Columnstore Performance : TPC-H
Por qué debería utilizar Column Store Índex
dieciséis
• Un Column Store Index puede proporcionar un nivel
muy alto de compresión de datos, normalmente 10
veces, para reducir el costo de almacenamiento de
almacenamiento de datos de manera significativa.
• Además, para las operaciones analíticas ofrecen un
orden de magnitud mejor rendimiento que un índice de
B-Tree.
• Es el formato de almacenamiento de datos preferido
para datawarehouse y analytics.
• A partir de SQL Server 2016 Release Candidate (RC0),
puede utilizar Column Store Index para real-time
analytics en el operational workload.
Razones por las Column Store Index son tan
rápidos
17
• Las columnas almacenan valores del mismo dominio y
comúnmente tienen valores similares, lo que resulta en altas
tasas de compresión. Esto minimiza o elimina cuellos de
botella de IO en el Sistema, al tiempo que reduce
significativamente el consumo de memoria.
• Las altas tasas de compresión mejoran el rendimiento de
consultas mediante el uso de una cantidad de memoria más
pequeña. A su vez, el rendimiento de consulta puede mejorar
porque SQL Server puede realizar más operaciones de
consultas y de datos en memoria.
• La ejecución por lotes mejora el rendimiento de consulta, por
lo general 2-4x, mediante el procesamiento de múltiples filas
a la vez.
• Consultas seleccionan a menudo sólo unas pocas columnas
de una tabla, lo que reduce el IO Total de los medios físicos.
¿Cuándo debo utilizar un Column Store
Index?
18
• Utilizar un clúster Column Store Index para
almacenar tablas de hechos y grandes tablas de
dimensiones para las cargas de trabajo de
datawarehouse. Esto mejora el rendimiento de
las consultas y la compresión de datos hasta 10
veces.
• Utilice un nonclustered columnstore index para
hacer real-time análisis en un OLTP.
Columstore Indexes
• Es como si cada columna tiene su propio índice.
• En SQL Server 2012:
• Solo soporta Nonclustered
• Provoca que la tabla quede de sólo lectura
• En SQL Server 2014:
• Se incopora el Clustered columnstore y es
actualizable
• Compresión masiva (60-90%)
• El Nonclustered todavía es read-only
Restricciones de SQL Server 2014
Tipos de datos:
ntext, text, and image, vardecimal, varchar(max) and nvarchar(max),
rowversion (and timestamp), sql_variant, CLR types (hierarchyid and
spatial types), xml, uniqueidentifier
Page/Row compression
Replication
Change Tracking, Change Data Capture
Filestream
Enterprise Edition only
Columstore Indexes en SQL 2016
• Nonclustered CS indexes ahora es actualizable, se
pueden filtrar
• Clustered CS indexes puede ser utilizados para
construer índex b-tree sobre ellos
• Esto mejora la concurrencia con el bloqueo de filas
• Mejor rendimiento para:
• Agregacios (MIN, MAX, SUM, COUNT, AVG)
• String Predicate (myFieldName LIKE '% foo')
• Mejor concurrencia (soporte snapshot isolation)
• Es soportado en ambientes de AlwaysOn Availability
Group secondary replicas
• Se obtienen mejores resultados de reorganización
de índices (elimina las filas eliminadas, menos
presión de la memoria)
• NCCI actualizable
• In-Memory OLTP +
Column-store
• Batch Mode Scans más
rápidos gracias al uso
de instrucciones de
vectores del CPU
• Dynamic Aggregate
pushdown
• PK/FK enforcement
• Offload Reporting to
AlwaysOn Secondary
Replica
¿Cómo elijo entre una rowstore índice y un
Column Store Index?
19
• Rowstore Index tienen mejor rendimiento en las
consultas hacen seek en los datos, la búsqueda de
un valor determinado, o para realizar consultas
sobre un pequeño rango de valores. Utilice
rowstore index con cargas de trabajo
transaccionales ya que tienden a requerir
usualmente table seeks en lugar de table scans.
• Column Store Index da alto rendimiento para
consultas analíticas que escanean grandes
cantidades de datos, especialmente en tablas
grandes. Utilice Column Store en Datawarehouse y
analytics workloads, especialmente en las tablas de
hechos, ya que tienden a requerir escaneos
completos de tabla en lugar de table seek.
Puedo combinar rowstore y Column Store en
la misma Tabla
20
• Sí. Comenzando con SQL Server 2016 Release
Candidate (RC0), se puede crear un updatable
nonclustered columnstore index en un rowstore table.
• Los Column Store Index almacenan una copia de las
columnas elegidas, así que se necesita espacio adicional
de almacenamiento, pero se comprimirá en un
promedio de 10 veces.
• Al hacer esto, puede ejecutar analytics en el Column
Store Index y transacciones en el rowstore index al
mismo tiempo.
• El column store se actualiza cuando cambian los datos
en la tabla rowstore, por lo que ambos índices están
trabajando con los mismos datos.
¿Puedo combinar rowstore y Column Store
en la misma Tabla
21
• Comenzando con SQL Server 2016 Release Candidate
(RC0), puede tener uno o más nonclustered rowstore
indexes on a columnstore index.
• Al hacer esto, puede realizar table seeks eficientes en el
utilizando column store.
• Otras opciones están disponibles también. Por ejemplo,
se puede hace un enforce primary key constraint al
utilizar un UNIQUE constraint en la table rowstore.
• Puesto que non-unique value fallará su inserción en el
rowstore, SQL Server no puede insertar el valor en el
column store.
Columnstore Indexes for Data Warehousing
23
• SQL Server 2016 Release Candidate (RC1) presenta
estas mejoras de rendimiento en el column store
• AlwaysOn soporta querying a columnstore index on a
readable secondary replica
• Múltiples conjuntos de resultados activos (MARS).
• Una nueva vista de administración dinámica
sys.dm_db_column_store_row_group_physical_stats
(Transact-SQL) proporciona información sobre el
rendimiento de resolución de problemas a nivel de grupo
de filas.
• El operador SORT y DISTINCT se ejecuta en modo batch.
• DISTINCT operación múltiple se ejecuta en modo batch.
Column StoreCaracterística Índice
SQL Server
2012
SQL Server
2014
SQL Server
2016 (CTP2)
Base de datos
SQL Azure
la ejecución por lotes para las consultas de subprocesos múltiples sí sí sí sí
la ejecución por lotes para las consultas de un único subproceso sí sí
opción de compresión de archivos. sí sí sí
El aislamiento de instantánea y lectura cometido aislamiento de instantánea sí sí
Especificar Column Storeíndice al crear una tabla. sí sí
Siempre soportes Column Store Index. sí sí sí sí
AlwaysOn soportes secundarios legibles sólo lectura de columnas índices. sí sí sí sí
Siempre soportes secundarios legibles actualizable Column Store Index. sí
Sólo lectura índice de Column Storeno agrupado en montón o árbolB. sí sí sí
1
sí
1
actualizable no agrupado Column Storeíndice en montón o árbolB sí sí
btree índices adicionales permitidos en un montón o árbolB que tiene un índice de almacén
de columnas.
sí sí sí sí
índice de Column Storeagrupadas actualizable. sí sí sí
Índice árbolB en un índice de Column Storeen clúster. sí sí
Column Storeíndice en una tabla de memoria optimizado. ¡Sí!
No agrupado índice de Column Storedefinición es compatible con el uso de una condición
filtrada.
sí sí
Comparacion de Versiones
Demostración
25
Scripts de demostración
• https://msdn.microsoft.com/en-
us/library/dn913734.aspx
• http://blog.sqlauthority.com/2015/09/16/sql-
server-2016-updating-non-clustered-
columnstore-index-enhancement/
• Vídeo
https://channel9.msdn.com/events/DataDriven/
SQLServer2016/Speeding-up-analytics-with-In-
Memory-Columnstore-Index
SQL Server 2016
inMemory OLTP
27
En memoria Mejoras OLTP
• Artículo Delaware Referencia:
http: //bit.ly/sql2016-in-memory-oltp
• Aaron Bertrand Blog:
http: //sqlperformance.com/2015/05/sql-
server-2016/in-memory-oltp-enhancements
Qué es inMemory OLTP en SQL Server 2014+
29
• Un totalmente nuevo, renovado motor para el
almacenamiento de datos, co-located en la misma base
de datos con el motor existente
• Creado para dar soporte a escenarios y casos específicos
• La terminología puede ser confusa
• Tabla Tradicionales: Home - On-Disk, pero idealmente en cache
In-Memory
• Tablas In-Memory: Home - In-Memory: pero respaldado en On-
Disk Structures
• Si tiene suficiente memoria RAM, On-Disk Tables
también se encuentran en la memoria
• Sin embargo, la aplicación es muy muy diferente
• InMemory tables es fácil de utilizar pero hay que saber
cuando aplica
Introducción a InMemory OLTP
• ¿Dónde estamos gastando más tiempo de ejecución?
• Estos son los resultados de los análisis de Microsoft.
I/O, Thread
Management
Storage Engine Relational Engine
Communication
Stack
10% 80% 10%
Access Methods,
Transaction, Lock, Log,
Managers
T-SQL Interpreter, Query
Execution, Expressions
Introducción a OLTP en memoria
• Hekaton Proyecto - Palabra griega ἑκατόν
(houndred).
• El objetivo es mejorar el rendimiento en 100x.
• Estrategia tradicional se basa en las estructuras en los datos
almacenados en el disco.
• Al utilizar plenamente las capacidades de memoria
podemos tener estructuras más simples.
• Disponible a partir de SQL Server 2014.
• Muy mejorada en SQL Server 2016.
In-memory engine en SQL 2016
32
Velocidad de las consultas 100x y
la compresión de datos
significativos con
In-Memory ColumnStore
Hasta 30 veces más rápido
procesamiento de transacciones con
In-Memory OLTP
Las consultas más
rápidas
IN-MEMORY DW
Las transacciones más
rápidas
IN-MEMORY OLTP
Por qué Hekaton ¿es más rápido?
• Elimina locks y latching.
• Aplica Optimistic model
Por qué Hekaton ¿es más rápido?
• Los objetos compilados.
• Todos los pasos para interpretar el código se evitan.
In-memory OLTP
SQL Server Integration
• Same manageability,
administration &
development experience
• Integrated queries &
transactions
• Integrated HA and
backup/restore
Main-Memory
Optimized
• Optimized for in-memory
data
• Indexes (hash and range)
exist only in memory
• No buffer pool, B-trees
• Stream-based storage
T-SQL Compiled to
Machine Code
• T-SQL compiled to machine
code via C code generator
• Invoking a procedure is just
a DLL entry-point
• Aggressive optimizations @
compile-time
Steadily declining memory
price, NVRAM
Many-core processorsStalling CPU clock rate TCO
Hardware trends Business
Hybrid engine and
integrated experience
High performance data
operations
Efficient business-logic
processing
Customer
Benefits
ArchitecturalPillarsDrivers
High Concurrency
• Multi-version optimistic
concurrency control with full
ACID support
• Core engine uses lock-free
algorithms
• No lock manager, latches or
spinlocks
Frictionless scale-up
Aplicación de cliente
Tabular Data Stream (TDS) Handler / Administrador de Sesiones
Ejecución de T-SQL
Buffer Pool para tablas
e índices
Parser,
Catalog,
Optimizer
InMemory
Native Compiler
Motor de almacenamiento
para tablas e índices de
optimizadas para memoria
Nativas Native
Compiled Stored
Procedures Schema
Sqlserv.exe
Memory Optimized
Table Filegroup
Transaction Log Data Filegroup
DLL generado
Componente
InMemory
Componente SQL
existente
Checkpoint Files / Recovery
Query
interoperability
Arquitectura
Implementación física
(Técnicamente el cambio está en el software!)
39
• In-Mem data structures coexistente en la base
de datos con los On-Disk structures
• Los datos se almacenan en la memoria RAM, y
una copia de seguridad en Delta Filies y
Transaction Logs
• Delta files se almacenan como filestream storage
• El registro de transacciones es el mismo de siempre
(con una utilización más liviana)
• Tablas e índices están muy acoplados
• MVCC (Multi-Valued Concurrency Control) se
utliza para aislamiento
Creación de objetos de almacenamiento -
Tablas
40
• La sintaxis es la misma que en el disco, con algunos
ajustes adicionales
• Existen opciones de durabilidad
• Individual In-Mem Table: SCHEMA_ONLY or
SCHEMA_AND_DATA
• Database level for transactions: Delayed (también para on-
disk tables)
• Es básicamente Asynchronous Log Writes
• Existe otras restricciones...
• Rowsize limitado a 8060 bytes (Enforced at Create Time)
• No se permiten todos los tipos de datos (LOB
types,CLR,sql_variant, datetimeoffset, rowversion)*
• No check constraints *
• No foreign keys *
• Just one unique index per table *
• Cada Durable Table (SCHEMA_AND_DATA) debe
tener un unique index/ primary key
Cómo manejar tipos no soportados...
41
• Digamos que tiene una tabla con 10 columnas, pero
1 no está permitido en una tabla en memoria
• En primer lugar: Pregúntate si la tabla realmente se
ajusta a los criterios
• En segundo lugar: Si es así, considere la partición
vertical
• CREATE TABLE In_Mem (KeyValue, Column1, Column2,
Column3)
CREATE TABLE On_Disk (KeyValue, Column4)
• Nota: 2016 permite LOB (varbinary(Max),
nvarchar(Max), varchar (max)) pero todavía es algo
que se puede tener en cuenta, debido a que la
memoria no es gratis...
Creación de objetos de almacenamiento - la
creación del índice
42
• Sintaxis está en el CREATE TABLE
• Los índices se vinculan directamente a la tabla
• 8 max índices por tabla
• Sólo un índice único permitido (the primary key) *
• Los índices no se persisten, pero se reconstruyen en el
reinicio
• Dos tipos
• Hash
• Ideal para las búsquedas de una sola fila
• tamaño fijo, se elige el número de recipientes de hash (aprox 1-
2 * # de valores únicos http://msdn.microsoft.com/en-
us/library/dn494956.aspx)
• Bw Tree
• Lo mejor para búsquedas por rango
• Muy similar a una BTree índice como usted (con suerte) lo sepa,
pero optimizado para MVCC y la conexión puntero a la tabla
Estructura física
43
• registro de datos básicos para una fila
• Header
Begin Timestamp End Timestamp StatementId IndexCount IndexPointers ...
1
2
3
8
Record Header Data For Columns (Payload)
Tamaño de las tablas en memoria
• SQL Server 2014
Tamaño de las durable tables en una base de datos <=
256 GB
• SQL Server 2016
• Soporta 2 TB de durable tables en la base de datos
Seguridad (TDE)
• SQL Server 2014
• No hay soporte para TDE.
• Solo tiene que elegir: rendimiento o seguridad?
• SQL Server 2016
• Admite el cifrado de datos transparente.
• Ahora usted tiene rendimiento y seguridad
Escalado de almacenamiento
• SQL Server 2014
• Escalabilidad limitada: hasta 2 sockets / 64 núcleos.
• Cuanto más núcleos, más log records son creados.
• Sólo hay un hilo " Offline Checkpoint ".
Single Offline Checkpoint Thread
Del Tran2
(TS 450)
Del Tran3
(TS 250)
Insert into
Hekaton T1
Log in SQL
Table
Del Tran1
(TS150)
SQL Transaction log
disk
To update DATA
and DELTA files.
Escalado de almacenamiento
• SQL Server 2016
• No más límites!
• Ahora hay múltiples hilos " Offline Checkpoint " por
cada contenedor.
Offline Checkpoint Thread
Del Tran2
(TS 450)
Del Tran3
(TS 250)
Insert into
Hekaton T1
Log in SQL
Table
Del Tran1
(TS150)
SQL Transaction log
disk
Offline Checkpoint ThreadOffline Checkpoint Thread
Desarrollo
• SQL Server 2014
• No se permiten modificaciones!
• Afinamiento de la base de datos
• En respuesta a los cambios en los patrones de datos.
• Desarrollo de aplicaciones / modificación.
• Métodos ágiles de desarrollo / iterativos.
• Necesidad de ser capaz de modificar el esquema de base de
datos.
Desarrollo
• SQL Server 2016
• ALTER es sportado!!
• ALTER PROC y sp_recompile soportado
• ALTER TABLE
• add/alter/drop column/constraint
• ALTER INDEX
• Add/drop index supported
• Change HASH index bucket_count through index REBUILD
Desarrollo
• SQL Server 2016
• Todavía hay algunas limitaciones ...
• ALTER TABLE es una operación fuera de línea; requiere
memoria 2X
• sp_rename sin embargo, no está soportado
Cambio en procesamiento de consultas
• SQL Server 2014
• Planes paralelos se utilizan para las tablas de en
memoria
• Optimizado para OLTP.
• Si se une a una tabla optimizada para memoria con
un Column Store utilizará DOP = 1.
• Se pierde el beneficio del ColumnStore
Cambio en procesamiento de consultas
• SQL Server 2016
• Planes paralelos ahora son compatibles!
• Ahora usted puede tener el beneficio de Column
Store mientras hace join con Memory Optimized
Tables.
• Análisis en tiempo real son ahora posibles, más
velocidad!
T-SQL Soportado
• SQL 2016
• Más fácil convertir las aplicaciones existentes!
• Ahora es compatible con:
• {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
T-SQL Soportado
• SQL 2016
• Ahora es compatible con:
• DML Triggers are now supported.
• AFTER triggers, natively compiled.
Migración / Manejabilidad
• SQL 2016
• En SQL Server 2014 existe una limitación de collation
• Ahora soportan todas las collations.
• Non-BIN2 collations en index key columns
• Non-Latin code pages para (var)char columns
• Non-BIN2 collations para comparación y ordenamiento
Resumen de mejoras en SQL 2016
• Tamaño máximo de tabla en memoria pasa de 256MB-> 2 TB
• Collations además BIN2 permitieron columnas en los índices
(aconsejado que no se desempeñan tan bien)
• ALTER TABLE se puede utilizar en las tablas de memoria para
agregar, eliminar o alterar las columnas, o para agregar, eliminar
o reconstruir los índices.
• ALTER PROCEDURE se puede usar en forma nativa compilado
procedimientos almacenados
• Procedimientos compilados de forma nativa permite sintaxis adicional
(LEFT JOIN, SELECT DISTINCT, UNION, todas las funciones
matemáticas)
• Permite escalar con mayor cantidad de sockets
• AlwaysOn replicas ven in-memory cambios de datos “undelayed”.
• Mejor garbage collection
Mejoras en En memoria OLTP
Característica / Límite SQL Server 2014 SQL Server 2016
El tamaño máximo de la tabla duradera 256 GB 2 TB
LOB (varbinary (max), [n] varchar (max)) No soportado Soportado*
Cifrado de datos transparente (TDE) No soportado Soportado
Desconectado Checkpoint Hilos 1 1 por contenedor
ALTER PROCEDURE / sp_recompile No soportado Apoyado (totalmente en línea)
llamadas a procedimientos anidados nativas No soportado Soportado
De forma nativa-compilado UDF escalares No soportado Soportado
ALTER TABLE
No soportado
(DROP / re-crear)
admite de forma parcial
(fuera de línea - detalles a continuación)
disparadores DML No soportado
admite de forma parcial
(DESPUÉS, de forma nativa compilado)
Los índices de las columnas anulables No soportado Soportado
colaciones no BIN2 en columnas de clave de índice No soportado Soportado
No latino páginas de códigos para [var] columnas
CHAR
No soportado Soportado
la comparación no BIN2 / clasificación en módulos
nativos
No soportado Soportado
Llaves extranjeras No soportado Soportado
Compruebe / Restricciones de unicidad No soportado Soportado
Paralelismo No soportado Soportado
OUTER JOIN, O, NO, UNION [ALL], distinto, EXISTE,
EN
No soportado Soportado
Múltiples conjuntos de resultados activos (MARS)
(Medios mejor soporte de Entity Framework).
No soportado Soportado
Diseñador de tablas SSMS No soportado Soportado
Fuente: http: //sqlperformance.com/2015/05/sql-server-2016/in-memory-OLTP-enhancements
CREATE DATABASE HowInMemObjectsAffectDesign
ON PRIMARY
( NAME = N'HowInMemObjectsAffectDesign', FILENAME =
N‘Drive:HowInMemObjectsAffectDesign.mdf' , SIZE = 2GB ,
MAXSIZE = UNLIMITED, FILEGROWTH = 10% ),
FILEGROUP [MemoryOptimizedFG] CONTAINS
MEMORY_OPTIMIZED_DATA
( NAME = N'HowInMemObjectsAffectDesign_inmemFiles',
FILENAME = N'Drive:InMemfiles' , MAXSIZE = UNLIMITED)
LOG ON
( NAME = N'HowInMemObjectsAffectDesign_log', FILENAME =
N'Drive:HowInMemObjectsAffectDesign_log.ldf' , SIZE = 1GB ,
MAXSIZE = 2GB , FILEGROWTH = 10%);
GO
Permitir in memory tables en la base de datos
54
Agregar un filegroup para
almacenar los delta files
Creación de Tabla Memory Optimized Permanent
55
CREATE TABLE Customers.Customer
(
CustomerId integer NOT NULL IDENTITY ( 1,1 ) ,
CustomerNumber char(10)
COLLATE Latin1_General_100_BIN2 NOT NULL,
CONSTRAINT XPKCustomer PRIMARY KEY NONCLUSTERED
HASH ( CustomerId) WITH ( BUCKET_COUNT = 50000),
INDEX CustomerNumber NONCLUSTERED ( CustomerNumber)
) WITH ( MEMORY_OPTIMIZED = ON ,
DURABILITY = SCHEMA_AND_DATA)
go
Creación de Tabla Memory Optimized Permanent
CREATE TABLE Customers.Customer
(
CustomerId integer NOT NULL IDENTITY ( 1,1 ) ,
CustomerNumber char(10)
COLLATE Latin1_General_100_BIN2 NOT NULL,
CONSTRAINT XPKCustomer PRIMARY KEY NONCLUSTERED
HASH ( CustomerId) WITH ( BUCKET_COUNT = 50000),
INDEX CustomerNumber NONCLUSTERED ( CustomerNumber)
) WITH ( MEMORY_OPTIMIZED = ON ,
DURABILITY = SCHEMA_AND_DATA)
go
56
Character column debe ser binario
para index/compare en código
nativo
Tabla es durable
Hash Index usado para
Primary Key. Estimated
Rows in Table 25000
Indicar que es tabla en
memoria
Bw Tree Index sobre
Customer Number
El acceso a los datos utilizando el código
compilado (Nativo)
68
• En lugar de ser interpretado, el procedimiento
almacenado se compila a código máquina
• Sintaxis limitada
• Sintaxis permitida
• http://msdn.microsoft.com/en-
us/library/dn452279.aspx
Demostración
InMemory Tables
73
SQL Server 2016
Column Store Index
InMemory Tables OLTP

Contenu connexe

Tendances

Consideraciones de memoria sql server hardware
Consideraciones de memoria sql server hardwareConsideraciones de memoria sql server hardware
Consideraciones de memoria sql server hardwareEduardo Castro
 
Introducción Procesador Consultas SQL Server - Query Processor
Introducción Procesador Consultas SQL Server - Query ProcessorIntroducción Procesador Consultas SQL Server - Query Processor
Introducción Procesador Consultas SQL Server - Query ProcessorEduardo Castro
 
Introduccion a SQL Server 2016 Stretch Databases
Introduccion a SQL Server 2016 Stretch DatabasesIntroduccion a SQL Server 2016 Stretch Databases
Introduccion a SQL Server 2016 Stretch DatabasesEduardo Castro
 
SQL 2016 Column Store Index
SQL 2016 Column Store IndexSQL 2016 Column Store Index
SQL 2016 Column Store IndexEduardo Castro
 
SQL Server 2014 Nuevas Capacidades
SQL Server 2014  Nuevas CapacidadesSQL Server 2014  Nuevas Capacidades
SQL Server 2014 Nuevas CapacidadesEduardo Castro
 
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 relacionalEnrique Catala Bañuls
 
Análisis de datos con Apache Spark
Análisis de datos con Apache SparkAnálisis de datos con Apache Spark
Análisis de datos con Apache SparkEduardo Castro
 
TSQL menos frecuente desde SQL Server 2005
TSQL menos frecuente desde SQL Server 2005TSQL menos frecuente desde SQL Server 2005
TSQL menos frecuente desde SQL Server 2005SolidQ
 
Consideraciones de sql server hardware
Consideraciones de sql server hardwareConsideraciones de sql server hardware
Consideraciones de sql server hardwareEduardo Castro
 
Copias de seguridad y recuperación de desastres
Copias de seguridad y recuperación de desastresCopias de seguridad y recuperación de desastres
Copias de seguridad y recuperación de desastresSolidQ
 
SQL Server 2014 Mejoras del DB Engine
SQL Server 2014 Mejoras del DB EngineSQL Server 2014 Mejoras del DB Engine
SQL Server 2014 Mejoras del DB EngineEduardo Castro
 
Recuperación ante desastres y continuidad del negocio con Azure SQL Database
Recuperación ante desastres y continuidad del negocio con Azure SQL DatabaseRecuperación ante desastres y continuidad del negocio con Azure SQL Database
Recuperación ante desastres y continuidad del negocio con Azure SQL DatabaseJoseph Lopez
 
Azure sql database escalabilidad
Azure sql database escalabilidadAzure sql database escalabilidad
Azure sql database escalabilidadEduardo Castro
 
Novedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladoresNovedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladoresEnrique Catala Bañuls
 
Query store
Query storeQuery store
Query storeSolidQ
 
Comparación entre microsoft sql server express edition 2012 y oracle
Comparación entre microsoft sql server express edition 2012 y oracleComparación entre microsoft sql server express edition 2012 y oracle
Comparación entre microsoft sql server express edition 2012 y oracleOsmar Zaragoza
 
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 2014SolidQ
 
Mejores prácticas para SQL Server en ambientes virtualizados
Mejores prácticas para SQL Server en ambientes virtualizadosMejores prácticas para SQL Server en ambientes virtualizados
Mejores prácticas para SQL Server en ambientes virtualizadosSpanishPASSVC
 
Es TEMPDB, por qué es tan importante?
Es TEMPDB, por qué es tan importante?Es TEMPDB, por qué es tan importante?
Es TEMPDB, por qué es tan importante?Javier Loria
 

Tendances (20)

Consideraciones de memoria sql server hardware
Consideraciones de memoria sql server hardwareConsideraciones de memoria sql server hardware
Consideraciones de memoria sql server hardware
 
Introducción Procesador Consultas SQL Server - Query Processor
Introducción Procesador Consultas SQL Server - Query ProcessorIntroducción Procesador Consultas SQL Server - Query Processor
Introducción Procesador Consultas SQL Server - Query Processor
 
Introduccion a SQL Server 2016 Stretch Databases
Introduccion a SQL Server 2016 Stretch DatabasesIntroduccion a SQL Server 2016 Stretch Databases
Introduccion a SQL Server 2016 Stretch Databases
 
SQL 2016 Column Store Index
SQL 2016 Column Store IndexSQL 2016 Column Store Index
SQL 2016 Column Store Index
 
SQL Server 2014 Nuevas Capacidades
SQL Server 2014  Nuevas CapacidadesSQL Server 2014  Nuevas Capacidades
SQL Server 2014 Nuevas Capacidades
 
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
 
Análisis de datos con Apache Spark
Análisis de datos con Apache SparkAnálisis de datos con Apache Spark
Análisis de datos con Apache Spark
 
TSQL menos frecuente desde SQL Server 2005
TSQL menos frecuente desde SQL Server 2005TSQL menos frecuente desde SQL Server 2005
TSQL menos frecuente desde SQL Server 2005
 
Consideraciones de sql server hardware
Consideraciones de sql server hardwareConsideraciones de sql server hardware
Consideraciones de sql server hardware
 
Copias de seguridad y recuperación de desastres
Copias de seguridad y recuperación de desastresCopias de seguridad y recuperación de desastres
Copias de seguridad y recuperación de desastres
 
SQL Server 2014 Mejoras del DB Engine
SQL Server 2014 Mejoras del DB EngineSQL Server 2014 Mejoras del DB Engine
SQL Server 2014 Mejoras del DB Engine
 
Recuperación ante desastres y continuidad del negocio con Azure SQL Database
Recuperación ante desastres y continuidad del negocio con Azure SQL DatabaseRecuperación ante desastres y continuidad del negocio con Azure SQL Database
Recuperación ante desastres y continuidad del negocio con Azure SQL Database
 
Azure sql database escalabilidad
Azure sql database escalabilidadAzure sql database escalabilidad
Azure sql database escalabilidad
 
Novedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladoresNovedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladores
 
Query store
Query storeQuery store
Query store
 
Query store
Query storeQuery store
Query store
 
Comparación entre microsoft sql server express edition 2012 y oracle
Comparación entre microsoft sql server express edition 2012 y oracleComparación entre microsoft sql server express edition 2012 y oracle
Comparación entre microsoft sql server express edition 2012 y oracle
 
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
 
Mejores prácticas para SQL Server en ambientes virtualizados
Mejores prácticas para SQL Server en ambientes virtualizadosMejores prácticas para SQL Server en ambientes virtualizados
Mejores prácticas para SQL Server en ambientes virtualizados
 
Es TEMPDB, por qué es tan importante?
Es TEMPDB, por qué es tan importante?Es TEMPDB, por qué es tan importante?
Es TEMPDB, por qué es tan importante?
 

En vedette

Servicios cognitivos y su integración
Servicios cognitivos y su integraciónServicios cognitivos y su integración
Servicios cognitivos y su integraciónEduardo Castro
 
Resumen del Microsoft Big Data Stack
Resumen del Microsoft Big Data StackResumen del Microsoft Big Data Stack
Resumen del Microsoft Big Data StackEduardo Castro
 
ANSI SQL
ANSI SQLANSI SQL
ANSI SQLMartha
 
Consideraciones de discos sql server hardware
Consideraciones de discos sql server hardwareConsideraciones de discos sql server hardware
Consideraciones de discos sql server hardwareEduardo Castro
 
Servicios cognitivos y su integración
Servicios cognitivos y su integraciónServicios cognitivos y su integración
Servicios cognitivos y su integraciónEduardo Castro
 
Introduccion a Big Data stack
Introduccion a Big Data stackIntroduccion a Big Data stack
Introduccion a Big Data stackEduardo Castro
 
Smart Grid Big Data e IoT
Smart Grid Big Data e IoTSmart Grid Big Data e IoT
Smart Grid Big Data e IoTEduardo Castro
 
Introduccion a Azure Machine Learning
Introduccion a Azure Machine LearningIntroduccion a Azure Machine Learning
Introduccion a Azure Machine LearningEduardo Castro
 
SQL Server 2016 Reporting Services
SQL Server 2016 Reporting ServicesSQL Server 2016 Reporting Services
SQL Server 2016 Reporting ServicesEduardo Castro
 
Mejores prácticas desarrollo de base de datos
Mejores prácticas desarrollo de base de datos Mejores prácticas desarrollo de base de datos
Mejores prácticas desarrollo de base de datos Eduardo Castro
 
Master Data Services Capacity Guidelines
Master Data Services Capacity GuidelinesMaster Data Services Capacity Guidelines
Master Data Services Capacity Guidelinesrumus1000
 
Cuadros de mando BI con SQL Server
Cuadros de mando BI con SQL ServerCuadros de mando BI con SQL Server
Cuadros de mando BI con SQL ServerEduardo Castro
 
Big Data con Sql Server 2014 y la nube
Big Data con Sql Server 2014 y la nubeBig Data con Sql Server 2014 y la nube
Big Data con Sql Server 2014 y la nubeEduardo Castro
 
Big data con SQL Server 2014
Big data con SQL Server 2014Big data con SQL Server 2014
Big data con SQL Server 2014Eduardo Castro
 
Que debe saber un DBA de SQL Server sobre Hadoop
Que debe saber un DBA de SQL Server sobre HadoopQue debe saber un DBA de SQL Server sobre Hadoop
Que debe saber un DBA de SQL Server sobre HadoopEduardo Castro
 
TSQL in SQL Server 2012
TSQL in SQL Server 2012TSQL in SQL Server 2012
TSQL in SQL Server 2012Eduardo Castro
 
Data consistency 入門 data partitioning ガイダンス
Data consistency 入門 data partitioning ガイダンスData consistency 入門 data partitioning ガイダンス
Data consistency 入門 data partitioning ガイダンスMasayuki Ozawa
 

En vedette (20)

Servicios cognitivos y su integración
Servicios cognitivos y su integraciónServicios cognitivos y su integración
Servicios cognitivos y su integración
 
Resumen del Microsoft Big Data Stack
Resumen del Microsoft Big Data StackResumen del Microsoft Big Data Stack
Resumen del Microsoft Big Data Stack
 
ANSI SQL
ANSI SQLANSI SQL
ANSI SQL
 
Consideraciones de discos sql server hardware
Consideraciones de discos sql server hardwareConsideraciones de discos sql server hardware
Consideraciones de discos sql server hardware
 
Microsoft R Server
Microsoft R ServerMicrosoft R Server
Microsoft R Server
 
Servicios cognitivos y su integración
Servicios cognitivos y su integraciónServicios cognitivos y su integración
Servicios cognitivos y su integración
 
Introduccion a Big Data stack
Introduccion a Big Data stackIntroduccion a Big Data stack
Introduccion a Big Data stack
 
Smart Grid Big Data e IoT
Smart Grid Big Data e IoTSmart Grid Big Data e IoT
Smart Grid Big Data e IoT
 
Introduccion a Azure Machine Learning
Introduccion a Azure Machine LearningIntroduccion a Azure Machine Learning
Introduccion a Azure Machine Learning
 
Microsoft R Server
Microsoft R ServerMicrosoft R Server
Microsoft R Server
 
SQL Server 2016 Reporting Services
SQL Server 2016 Reporting ServicesSQL Server 2016 Reporting Services
SQL Server 2016 Reporting Services
 
Mejores prácticas desarrollo de base de datos
Mejores prácticas desarrollo de base de datos Mejores prácticas desarrollo de base de datos
Mejores prácticas desarrollo de base de datos
 
Master Data Services Capacity Guidelines
Master Data Services Capacity GuidelinesMaster Data Services Capacity Guidelines
Master Data Services Capacity Guidelines
 
Cuadros de mando BI con SQL Server
Cuadros de mando BI con SQL ServerCuadros de mando BI con SQL Server
Cuadros de mando BI con SQL Server
 
Big Data con Sql Server 2014 y la nube
Big Data con Sql Server 2014 y la nubeBig Data con Sql Server 2014 y la nube
Big Data con Sql Server 2014 y la nube
 
Big data con SQL Server 2014
Big data con SQL Server 2014Big data con SQL Server 2014
Big data con SQL Server 2014
 
Que debe saber un DBA de SQL Server sobre Hadoop
Que debe saber un DBA de SQL Server sobre HadoopQue debe saber un DBA de SQL Server sobre Hadoop
Que debe saber un DBA de SQL Server sobre Hadoop
 
TSQL in SQL Server 2012
TSQL in SQL Server 2012TSQL in SQL Server 2012
TSQL in SQL Server 2012
 
Indian movies games
Indian movies gamesIndian movies games
Indian movies games
 
Data consistency 入門 data partitioning ガイダンス
Data consistency 入門 data partitioning ガイダンスData consistency 入門 data partitioning ガイダンス
Data consistency 入門 data partitioning ガイダンス
 

Similaire à SQL 2016 Mejoras en InMemory OLTP y Column Store Index

Columnstore en la vida real
Columnstore en la vida realColumnstore en la vida real
Columnstore en la vida realSolidQ
 
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 2016Joseph Lopez
 
Column stored index
Column stored index Column stored index
Column stored index SolidQ
 
Casos de bodegas de datos con SQL Server
Casos de bodegas de datos con SQL ServerCasos de bodegas de datos con SQL Server
Casos de bodegas de datos con SQL ServerEduardo Castro
 
MS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datos
MS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datosMS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datos
MS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datosJoseph Lopez
 
In memory
In memoryIn memory
In memorySolidQ
 
Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)SolidQ
 
Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Enrique Catala Bañuls
 
Las mejores practicas de los indices columnstore
Las mejores practicas de los indices columnstoreLas mejores practicas de los indices columnstore
Las mejores practicas de los indices columnstoreSpanishPASSVC
 
Carbura tusql sesion2_slideshare
Carbura tusql sesion2_slideshareCarbura tusql sesion2_slideshare
Carbura tusql sesion2_slideshareJulián Castiblanco
 
Introducción a Microsoft Azure SQL Data Warehouse
Introducción a Microsoft Azure SQL Data WarehouseIntroducción a Microsoft Azure SQL Data Warehouse
Introducción a Microsoft Azure SQL Data WarehouseJoseph Lopez
 
Indices Columnares en SQL Server 2014
Indices Columnares en SQL Server 2014Indices Columnares en SQL Server 2014
Indices Columnares en SQL Server 2014SpanishPASSVC
 
Sql server 2012 y share point server 2013 integración cercana a la perfección
Sql server 2012 y share point server 2013 integración cercana a la perfecciónSql server 2012 y share point server 2013 integración cercana a la perfección
Sql server 2012 y share point server 2013 integración cercana a la perfecciónGuillermo Taylor
 
Novedades de MS SQL Server 2012 para ambientes tecnológicos OLTP y OLAP
Novedades de MS SQL Server 2012 para ambientes tecnológicos OLTP y OLAPNovedades de MS SQL Server 2012 para ambientes tecnológicos OLTP y OLAP
Novedades de MS SQL Server 2012 para ambientes tecnológicos OLTP y OLAPJoseph Lopez
 
Mejores prácticas de Data Warehouse con SQL Server
Mejores prácticas de Data Warehouse con SQL ServerMejores prácticas de Data Warehouse con SQL Server
Mejores prácticas de Data Warehouse con SQL ServerSpanishPASSVC
 

Similaire à SQL 2016 Mejoras en InMemory OLTP y Column Store Index (20)

Columnstore en la vida real
Columnstore en la vida realColumnstore en la vida real
Columnstore en la vida real
 
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
 
Column stored index
Column stored index Column stored index
Column stored index
 
Casos de bodegas de datos con SQL Server
Casos de bodegas de datos con SQL ServerCasos de bodegas de datos con SQL Server
Casos de bodegas de datos con SQL Server
 
MS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datos
MS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datosMS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datos
MS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datos
 
In memory
In memoryIn memory
In memory
 
Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)
 
Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)
 
Las mejores practicas de los indices columnstore
Las mejores practicas de los indices columnstoreLas mejores practicas de los indices columnstore
Las mejores practicas de los indices columnstore
 
Carbura tusql sesion2_slideshare
Carbura tusql sesion2_slideshareCarbura tusql sesion2_slideshare
Carbura tusql sesion2_slideshare
 
Introducción a Microsoft Azure SQL Data Warehouse
Introducción a Microsoft Azure SQL Data WarehouseIntroducción a Microsoft Azure SQL Data Warehouse
Introducción a Microsoft Azure SQL Data Warehouse
 
Indices Columnares en SQL Server 2014
Indices Columnares en SQL Server 2014Indices Columnares en SQL Server 2014
Indices Columnares en SQL Server 2014
 
Tipos de base de datos
Tipos de base de datosTipos de base de datos
Tipos de base de datos
 
Migración a sql server 2016
Migración a sql server 2016Migración a sql server 2016
Migración a sql server 2016
 
Sql server 2012 y share point server 2013 integración cercana a la perfección
Sql server 2012 y share point server 2013 integración cercana a la perfecciónSql server 2012 y share point server 2013 integración cercana a la perfección
Sql server 2012 y share point server 2013 integración cercana a la perfección
 
Novedades de MS SQL Server 2012 para ambientes tecnológicos OLTP y OLAP
Novedades de MS SQL Server 2012 para ambientes tecnológicos OLTP y OLAPNovedades de MS SQL Server 2012 para ambientes tecnológicos OLTP y OLAP
Novedades de MS SQL Server 2012 para ambientes tecnológicos OLTP y OLAP
 
sesion 01_sql basico.pdf
sesion 01_sql basico.pdfsesion 01_sql basico.pdf
sesion 01_sql basico.pdf
 
Azure SQL Data Warehouse - 24 horas de PASS
Azure SQL Data Warehouse - 24 horas de PASS Azure SQL Data Warehouse - 24 horas de PASS
Azure SQL Data Warehouse - 24 horas de PASS
 
Mejores prácticas de Data Warehouse con SQL Server
Mejores prácticas de Data Warehouse con SQL ServerMejores prácticas de Data Warehouse con SQL Server
Mejores prácticas de Data Warehouse con SQL Server
 
Presentacion
PresentacionPresentacion
Presentacion
 

Plus de Eduardo Castro

Introducción a polybase en SQL Server
Introducción a polybase en SQL ServerIntroducción a polybase en SQL Server
Introducción a polybase en SQL ServerEduardo Castro
 
Creando tu primer ambiente de AI en Azure ML y SQL Server
Creando tu primer ambiente de AI en Azure ML y SQL ServerCreando tu primer ambiente de AI en Azure ML y SQL Server
Creando tu primer ambiente de AI en Azure ML y SQL ServerEduardo Castro
 
Seguridad en SQL Azure
Seguridad en SQL AzureSeguridad en SQL Azure
Seguridad en SQL AzureEduardo Castro
 
Azure Synapse Analytics MLflow
Azure Synapse Analytics MLflowAzure Synapse Analytics MLflow
Azure Synapse Analytics MLflowEduardo Castro
 
SQL Server 2019 con Windows Server 2022
SQL Server 2019 con Windows Server 2022SQL Server 2019 con Windows Server 2022
SQL Server 2019 con Windows Server 2022Eduardo Castro
 
Novedades en SQL Server 2022
Novedades en SQL Server 2022Novedades en SQL Server 2022
Novedades en SQL Server 2022Eduardo Castro
 
Introduccion a SQL Server 2022
Introduccion a SQL Server 2022Introduccion a SQL Server 2022
Introduccion a SQL Server 2022Eduardo Castro
 
Machine Learning con Azure Managed Instance
Machine Learning con Azure Managed InstanceMachine Learning con Azure Managed Instance
Machine Learning con Azure Managed InstanceEduardo Castro
 
Novedades en sql server 2022
Novedades en sql server 2022Novedades en sql server 2022
Novedades en sql server 2022Eduardo Castro
 
Sql server 2019 con windows server 2022
Sql server 2019 con windows server 2022Sql server 2019 con windows server 2022
Sql server 2019 con windows server 2022Eduardo Castro
 
Introduccion a databricks
Introduccion a databricksIntroduccion a databricks
Introduccion a databricksEduardo Castro
 
Pronosticos con sql server
Pronosticos con sql serverPronosticos con sql server
Pronosticos con sql serverEduardo Castro
 
Data warehouse con azure synapse analytics
Data warehouse con azure synapse analyticsData warehouse con azure synapse analytics
Data warehouse con azure synapse analyticsEduardo Castro
 
Que hay de nuevo en el Azure Data Lake Storage Gen2
Que hay de nuevo en el Azure Data Lake Storage Gen2Que hay de nuevo en el Azure Data Lake Storage Gen2
Que hay de nuevo en el Azure Data Lake Storage Gen2Eduardo Castro
 
Introduccion a Azure Synapse Analytics
Introduccion a Azure Synapse AnalyticsIntroduccion a Azure Synapse Analytics
Introduccion a Azure Synapse AnalyticsEduardo Castro
 
Seguridad de SQL Database en Azure
Seguridad de SQL Database en AzureSeguridad de SQL Database en Azure
Seguridad de SQL Database en AzureEduardo Castro
 
Python dentro de SQL Server
Python dentro de SQL ServerPython dentro de SQL Server
Python dentro de SQL ServerEduardo Castro
 
Servicios Cognitivos de de Microsoft
Servicios Cognitivos de de Microsoft Servicios Cognitivos de de Microsoft
Servicios Cognitivos de de Microsoft Eduardo Castro
 
Script de paso a paso de configuración de Secure Enclaves
Script de paso a paso de configuración de Secure EnclavesScript de paso a paso de configuración de Secure Enclaves
Script de paso a paso de configuración de Secure EnclavesEduardo Castro
 
Introducción a conceptos de SQL Server Secure Enclaves
Introducción a conceptos de SQL Server Secure EnclavesIntroducción a conceptos de SQL Server Secure Enclaves
Introducción a conceptos de SQL Server Secure EnclavesEduardo Castro
 

Plus de Eduardo Castro (20)

Introducción a polybase en SQL Server
Introducción a polybase en SQL ServerIntroducción a polybase en SQL Server
Introducción a polybase en SQL Server
 
Creando tu primer ambiente de AI en Azure ML y SQL Server
Creando tu primer ambiente de AI en Azure ML y SQL ServerCreando tu primer ambiente de AI en Azure ML y SQL Server
Creando tu primer ambiente de AI en Azure ML y SQL Server
 
Seguridad en SQL Azure
Seguridad en SQL AzureSeguridad en SQL Azure
Seguridad en SQL Azure
 
Azure Synapse Analytics MLflow
Azure Synapse Analytics MLflowAzure Synapse Analytics MLflow
Azure Synapse Analytics MLflow
 
SQL Server 2019 con Windows Server 2022
SQL Server 2019 con Windows Server 2022SQL Server 2019 con Windows Server 2022
SQL Server 2019 con Windows Server 2022
 
Novedades en SQL Server 2022
Novedades en SQL Server 2022Novedades en SQL Server 2022
Novedades en SQL Server 2022
 
Introduccion a SQL Server 2022
Introduccion a SQL Server 2022Introduccion a SQL Server 2022
Introduccion a SQL Server 2022
 
Machine Learning con Azure Managed Instance
Machine Learning con Azure Managed InstanceMachine Learning con Azure Managed Instance
Machine Learning con Azure Managed Instance
 
Novedades en sql server 2022
Novedades en sql server 2022Novedades en sql server 2022
Novedades en sql server 2022
 
Sql server 2019 con windows server 2022
Sql server 2019 con windows server 2022Sql server 2019 con windows server 2022
Sql server 2019 con windows server 2022
 
Introduccion a databricks
Introduccion a databricksIntroduccion a databricks
Introduccion a databricks
 
Pronosticos con sql server
Pronosticos con sql serverPronosticos con sql server
Pronosticos con sql server
 
Data warehouse con azure synapse analytics
Data warehouse con azure synapse analyticsData warehouse con azure synapse analytics
Data warehouse con azure synapse analytics
 
Que hay de nuevo en el Azure Data Lake Storage Gen2
Que hay de nuevo en el Azure Data Lake Storage Gen2Que hay de nuevo en el Azure Data Lake Storage Gen2
Que hay de nuevo en el Azure Data Lake Storage Gen2
 
Introduccion a Azure Synapse Analytics
Introduccion a Azure Synapse AnalyticsIntroduccion a Azure Synapse Analytics
Introduccion a Azure Synapse Analytics
 
Seguridad de SQL Database en Azure
Seguridad de SQL Database en AzureSeguridad de SQL Database en Azure
Seguridad de SQL Database en Azure
 
Python dentro de SQL Server
Python dentro de SQL ServerPython dentro de SQL Server
Python dentro de SQL Server
 
Servicios Cognitivos de de Microsoft
Servicios Cognitivos de de Microsoft Servicios Cognitivos de de Microsoft
Servicios Cognitivos de de Microsoft
 
Script de paso a paso de configuración de Secure Enclaves
Script de paso a paso de configuración de Secure EnclavesScript de paso a paso de configuración de Secure Enclaves
Script de paso a paso de configuración de Secure Enclaves
 
Introducción a conceptos de SQL Server Secure Enclaves
Introducción a conceptos de SQL Server Secure EnclavesIntroducción a conceptos de SQL Server Secure Enclaves
Introducción a conceptos de SQL Server Secure Enclaves
 

Dernier

CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 

Dernier (20)

CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 

SQL 2016 Mejoras en InMemory OLTP y Column Store Index

  • 1. SQL Server 2016 Column Store Index InMemory Tables OLTP
  • 2. Bienvenida • Ing. Eduardo Castro, PhD • MVP de Microsoft SQL Server • PASS Regional de Mentor • PASS Board of Directors • ecastro@simsasys.com • http://www.youtube.com/eduardocastrom
  • 3. Material de Referencia SQL Server Evolution. SQL 2016 new innovations. Lindsey Allen Principal Group Program Manager, Borko Novakovic Program Manager New in Master Data Services and Integration Services in SQL Server 2016. Matt Masson SQL Server Evolution. Shawn Bice Engineering Partner Director Operational Analytics in SQL Server. Sunil Agarwal Principal Program Manager
  • 4. Plataforma de misión crítica Desempeño Operational Analytics • Reduciralmínimoimpactoenel rendimientocorriendoanálisisen tiemporealdedatosdela transacción • Evitarladispersióndedatos InMemory OLTP para más aplicaciones Query Store Seguridad Always Encrypted Row level security Dynamic Data Masking Disponibilidad Enhanced AlwaysOn • 3réplicassíncronaspara failoverautomáticoatravésde dominios • elequilibriodecargaround robin deréplicas • DTCparalaintegridad transaccional atravésdeinstanciasdebase conAlwaysOn Mejoras en operaciones en línea Escalabilidad Soporte para Windows Server 2016 12TB16sockets
  • 5. SQL 2016 Mejoras Acceder a cualquier dato PolyBase Native JSON Temporal database support Power Query for analytics and reporting Built-in Advanced Analytics Conocimiento del negocio a través de visualizaciones en cualquier dispositivo móvil Escalar y gestionar Enterprise-grade Analysis Services SSDT in Visual Studio 2015 Enhanced MDS Enhanced SSIS Enhanced Reporting Services Las soluciones híbridas Stretch tables en Azure Power BI with on-premises data Escenarios híbridos con SSIS • AzureDataFactoryintegrationwithSSIS • PackageLineageandimpactanalysis • ConnectSSIStoclouddatasources Mejoras en respaldohacia Azure • Xfasterrestoreand50%reductioninstorage Mejor migraciónde SQL Server OnPremiseshacia Azure
  • 7. Mejoras en Column Store • Artículo de Microsoft http://bit.ly/sql2016-columnstore
  • 8. . . . C1 C 2 C3 C5C4 Columstore: cómo funciona? 10 beneficios: • Mejora de la compresión: Los datos del mismo dominio comprimen mejor • Reducción de E / S: Traerá sólo las columnas necesarias • Desempeño mejorado: Más datos caben en la memoria Los datos almacenados como filas Column Store(índice) Los datos almacenados como columnas
  • 9. Llav e AlternateKey Nombre Valore s 1 AR-5381 Ajustable Carrera 1000 2 BA-8327 Cojinete Pelota 1000 3 BE-2349 Pelota Cojinete Jaula 800 4 BE-2908 Pelota Cojinete Grasa 800 5 BL-2036 Espada 800 6 CA-5965 LL Biela 500 7 CA-6738 ML Biela 500 Página 1 de fila almacenar Página 2 de fila almacenar Segmento para columna 1 Segmento para columna 2 Segmento para columna 3 Segmento para columna 4 RowStore vs. Column Store
  • 11. Por qué debería utilizar Column Store Índex dieciséis • Un Column Store Index puede proporcionar un nivel muy alto de compresión de datos, normalmente 10 veces, para reducir el costo de almacenamiento de almacenamiento de datos de manera significativa. • Además, para las operaciones analíticas ofrecen un orden de magnitud mejor rendimiento que un índice de B-Tree. • Es el formato de almacenamiento de datos preferido para datawarehouse y analytics. • A partir de SQL Server 2016 Release Candidate (RC0), puede utilizar Column Store Index para real-time analytics en el operational workload.
  • 12. Razones por las Column Store Index son tan rápidos 17 • Las columnas almacenan valores del mismo dominio y comúnmente tienen valores similares, lo que resulta en altas tasas de compresión. Esto minimiza o elimina cuellos de botella de IO en el Sistema, al tiempo que reduce significativamente el consumo de memoria. • Las altas tasas de compresión mejoran el rendimiento de consultas mediante el uso de una cantidad de memoria más pequeña. A su vez, el rendimiento de consulta puede mejorar porque SQL Server puede realizar más operaciones de consultas y de datos en memoria. • La ejecución por lotes mejora el rendimiento de consulta, por lo general 2-4x, mediante el procesamiento de múltiples filas a la vez. • Consultas seleccionan a menudo sólo unas pocas columnas de una tabla, lo que reduce el IO Total de los medios físicos.
  • 13. ¿Cuándo debo utilizar un Column Store Index? 18 • Utilizar un clúster Column Store Index para almacenar tablas de hechos y grandes tablas de dimensiones para las cargas de trabajo de datawarehouse. Esto mejora el rendimiento de las consultas y la compresión de datos hasta 10 veces. • Utilice un nonclustered columnstore index para hacer real-time análisis en un OLTP.
  • 14. Columstore Indexes • Es como si cada columna tiene su propio índice. • En SQL Server 2012: • Solo soporta Nonclustered • Provoca que la tabla quede de sólo lectura • En SQL Server 2014: • Se incopora el Clustered columnstore y es actualizable • Compresión masiva (60-90%) • El Nonclustered todavía es read-only
  • 15. Restricciones de SQL Server 2014 Tipos de datos: ntext, text, and image, vardecimal, varchar(max) and nvarchar(max), rowversion (and timestamp), sql_variant, CLR types (hierarchyid and spatial types), xml, uniqueidentifier Page/Row compression Replication Change Tracking, Change Data Capture Filestream Enterprise Edition only
  • 16. Columstore Indexes en SQL 2016 • Nonclustered CS indexes ahora es actualizable, se pueden filtrar • Clustered CS indexes puede ser utilizados para construer índex b-tree sobre ellos • Esto mejora la concurrencia con el bloqueo de filas • Mejor rendimiento para: • Agregacios (MIN, MAX, SUM, COUNT, AVG) • String Predicate (myFieldName LIKE '% foo') • Mejor concurrencia (soporte snapshot isolation) • Es soportado en ambientes de AlwaysOn Availability Group secondary replicas • Se obtienen mejores resultados de reorganización de índices (elimina las filas eliminadas, menos presión de la memoria)
  • 17. • NCCI actualizable • In-Memory OLTP + Column-store • Batch Mode Scans más rápidos gracias al uso de instrucciones de vectores del CPU • Dynamic Aggregate pushdown • PK/FK enforcement • Offload Reporting to AlwaysOn Secondary Replica
  • 18. ¿Cómo elijo entre una rowstore índice y un Column Store Index? 19 • Rowstore Index tienen mejor rendimiento en las consultas hacen seek en los datos, la búsqueda de un valor determinado, o para realizar consultas sobre un pequeño rango de valores. Utilice rowstore index con cargas de trabajo transaccionales ya que tienden a requerir usualmente table seeks en lugar de table scans. • Column Store Index da alto rendimiento para consultas analíticas que escanean grandes cantidades de datos, especialmente en tablas grandes. Utilice Column Store en Datawarehouse y analytics workloads, especialmente en las tablas de hechos, ya que tienden a requerir escaneos completos de tabla en lugar de table seek.
  • 19. Puedo combinar rowstore y Column Store en la misma Tabla 20 • Sí. Comenzando con SQL Server 2016 Release Candidate (RC0), se puede crear un updatable nonclustered columnstore index en un rowstore table. • Los Column Store Index almacenan una copia de las columnas elegidas, así que se necesita espacio adicional de almacenamiento, pero se comprimirá en un promedio de 10 veces. • Al hacer esto, puede ejecutar analytics en el Column Store Index y transacciones en el rowstore index al mismo tiempo. • El column store se actualiza cuando cambian los datos en la tabla rowstore, por lo que ambos índices están trabajando con los mismos datos.
  • 20. ¿Puedo combinar rowstore y Column Store en la misma Tabla 21 • Comenzando con SQL Server 2016 Release Candidate (RC0), puede tener uno o más nonclustered rowstore indexes on a columnstore index. • Al hacer esto, puede realizar table seeks eficientes en el utilizando column store. • Otras opciones están disponibles también. Por ejemplo, se puede hace un enforce primary key constraint al utilizar un UNIQUE constraint en la table rowstore. • Puesto que non-unique value fallará su inserción en el rowstore, SQL Server no puede insertar el valor en el column store.
  • 21. Columnstore Indexes for Data Warehousing 23 • SQL Server 2016 Release Candidate (RC1) presenta estas mejoras de rendimiento en el column store • AlwaysOn soporta querying a columnstore index on a readable secondary replica • Múltiples conjuntos de resultados activos (MARS). • Una nueva vista de administración dinámica sys.dm_db_column_store_row_group_physical_stats (Transact-SQL) proporciona información sobre el rendimiento de resolución de problemas a nivel de grupo de filas. • El operador SORT y DISTINCT se ejecuta en modo batch. • DISTINCT operación múltiple se ejecuta en modo batch.
  • 22. Column StoreCaracterística Índice SQL Server 2012 SQL Server 2014 SQL Server 2016 (CTP2) Base de datos SQL Azure la ejecución por lotes para las consultas de subprocesos múltiples sí sí sí sí la ejecución por lotes para las consultas de un único subproceso sí sí opción de compresión de archivos. sí sí sí El aislamiento de instantánea y lectura cometido aislamiento de instantánea sí sí Especificar Column Storeíndice al crear una tabla. sí sí Siempre soportes Column Store Index. sí sí sí sí AlwaysOn soportes secundarios legibles sólo lectura de columnas índices. sí sí sí sí Siempre soportes secundarios legibles actualizable Column Store Index. sí Sólo lectura índice de Column Storeno agrupado en montón o árbolB. sí sí sí 1 sí 1 actualizable no agrupado Column Storeíndice en montón o árbolB sí sí btree índices adicionales permitidos en un montón o árbolB que tiene un índice de almacén de columnas. sí sí sí sí índice de Column Storeagrupadas actualizable. sí sí sí Índice árbolB en un índice de Column Storeen clúster. sí sí Column Storeíndice en una tabla de memoria optimizado. ¡Sí! No agrupado índice de Column Storedefinición es compatible con el uso de una condición filtrada. sí sí Comparacion de Versiones
  • 24. Scripts de demostración • https://msdn.microsoft.com/en- us/library/dn913734.aspx • http://blog.sqlauthority.com/2015/09/16/sql- server-2016-updating-non-clustered- columnstore-index-enhancement/ • Vídeo https://channel9.msdn.com/events/DataDriven/ SQLServer2016/Speeding-up-analytics-with-In- Memory-Columnstore-Index
  • 26. En memoria Mejoras OLTP • Artículo Delaware Referencia: http: //bit.ly/sql2016-in-memory-oltp • Aaron Bertrand Blog: http: //sqlperformance.com/2015/05/sql- server-2016/in-memory-oltp-enhancements
  • 27. Qué es inMemory OLTP en SQL Server 2014+ 29 • Un totalmente nuevo, renovado motor para el almacenamiento de datos, co-located en la misma base de datos con el motor existente • Creado para dar soporte a escenarios y casos específicos • La terminología puede ser confusa • Tabla Tradicionales: Home - On-Disk, pero idealmente en cache In-Memory • Tablas In-Memory: Home - In-Memory: pero respaldado en On- Disk Structures • Si tiene suficiente memoria RAM, On-Disk Tables también se encuentran en la memoria • Sin embargo, la aplicación es muy muy diferente • InMemory tables es fácil de utilizar pero hay que saber cuando aplica
  • 28. Introducción a InMemory OLTP • ¿Dónde estamos gastando más tiempo de ejecución? • Estos son los resultados de los análisis de Microsoft. I/O, Thread Management Storage Engine Relational Engine Communication Stack 10% 80% 10% Access Methods, Transaction, Lock, Log, Managers T-SQL Interpreter, Query Execution, Expressions
  • 29. Introducción a OLTP en memoria • Hekaton Proyecto - Palabra griega ἑκατόν (houndred). • El objetivo es mejorar el rendimiento en 100x. • Estrategia tradicional se basa en las estructuras en los datos almacenados en el disco. • Al utilizar plenamente las capacidades de memoria podemos tener estructuras más simples. • Disponible a partir de SQL Server 2014. • Muy mejorada en SQL Server 2016.
  • 30. In-memory engine en SQL 2016 32 Velocidad de las consultas 100x y la compresión de datos significativos con In-Memory ColumnStore Hasta 30 veces más rápido procesamiento de transacciones con In-Memory OLTP Las consultas más rápidas IN-MEMORY DW Las transacciones más rápidas IN-MEMORY OLTP
  • 31. Por qué Hekaton ¿es más rápido? • Elimina locks y latching. • Aplica Optimistic model
  • 32. Por qué Hekaton ¿es más rápido? • Los objetos compilados. • Todos los pasos para interpretar el código se evitan.
  • 33. In-memory OLTP SQL Server Integration • Same manageability, administration & development experience • Integrated queries & transactions • Integrated HA and backup/restore Main-Memory Optimized • Optimized for in-memory data • Indexes (hash and range) exist only in memory • No buffer pool, B-trees • Stream-based storage T-SQL Compiled to Machine Code • T-SQL compiled to machine code via C code generator • Invoking a procedure is just a DLL entry-point • Aggressive optimizations @ compile-time Steadily declining memory price, NVRAM Many-core processorsStalling CPU clock rate TCO Hardware trends Business Hybrid engine and integrated experience High performance data operations Efficient business-logic processing Customer Benefits ArchitecturalPillarsDrivers High Concurrency • Multi-version optimistic concurrency control with full ACID support • Core engine uses lock-free algorithms • No lock manager, latches or spinlocks Frictionless scale-up
  • 34. Aplicación de cliente Tabular Data Stream (TDS) Handler / Administrador de Sesiones Ejecución de T-SQL Buffer Pool para tablas e índices Parser, Catalog, Optimizer InMemory Native Compiler Motor de almacenamiento para tablas e índices de optimizadas para memoria Nativas Native Compiled Stored Procedures Schema Sqlserv.exe Memory Optimized Table Filegroup Transaction Log Data Filegroup DLL generado Componente InMemory Componente SQL existente Checkpoint Files / Recovery Query interoperability Arquitectura
  • 35. Implementación física (Técnicamente el cambio está en el software!) 39 • In-Mem data structures coexistente en la base de datos con los On-Disk structures • Los datos se almacenan en la memoria RAM, y una copia de seguridad en Delta Filies y Transaction Logs • Delta files se almacenan como filestream storage • El registro de transacciones es el mismo de siempre (con una utilización más liviana) • Tablas e índices están muy acoplados • MVCC (Multi-Valued Concurrency Control) se utliza para aislamiento
  • 36. Creación de objetos de almacenamiento - Tablas 40 • La sintaxis es la misma que en el disco, con algunos ajustes adicionales • Existen opciones de durabilidad • Individual In-Mem Table: SCHEMA_ONLY or SCHEMA_AND_DATA • Database level for transactions: Delayed (también para on- disk tables) • Es básicamente Asynchronous Log Writes • Existe otras restricciones... • Rowsize limitado a 8060 bytes (Enforced at Create Time) • No se permiten todos los tipos de datos (LOB types,CLR,sql_variant, datetimeoffset, rowversion)* • No check constraints * • No foreign keys * • Just one unique index per table * • Cada Durable Table (SCHEMA_AND_DATA) debe tener un unique index/ primary key
  • 37. Cómo manejar tipos no soportados... 41 • Digamos que tiene una tabla con 10 columnas, pero 1 no está permitido en una tabla en memoria • En primer lugar: Pregúntate si la tabla realmente se ajusta a los criterios • En segundo lugar: Si es así, considere la partición vertical • CREATE TABLE In_Mem (KeyValue, Column1, Column2, Column3) CREATE TABLE On_Disk (KeyValue, Column4) • Nota: 2016 permite LOB (varbinary(Max), nvarchar(Max), varchar (max)) pero todavía es algo que se puede tener en cuenta, debido a que la memoria no es gratis...
  • 38. Creación de objetos de almacenamiento - la creación del índice 42 • Sintaxis está en el CREATE TABLE • Los índices se vinculan directamente a la tabla • 8 max índices por tabla • Sólo un índice único permitido (the primary key) * • Los índices no se persisten, pero se reconstruyen en el reinicio • Dos tipos • Hash • Ideal para las búsquedas de una sola fila • tamaño fijo, se elige el número de recipientes de hash (aprox 1- 2 * # de valores únicos http://msdn.microsoft.com/en- us/library/dn494956.aspx) • Bw Tree • Lo mejor para búsquedas por rango • Muy similar a una BTree índice como usted (con suerte) lo sepa, pero optimizado para MVCC y la conexión puntero a la tabla
  • 39. Estructura física 43 • registro de datos básicos para una fila • Header Begin Timestamp End Timestamp StatementId IndexCount IndexPointers ... 1 2 3 8 Record Header Data For Columns (Payload)
  • 40. Tamaño de las tablas en memoria • SQL Server 2014 Tamaño de las durable tables en una base de datos <= 256 GB • SQL Server 2016 • Soporta 2 TB de durable tables en la base de datos
  • 41. Seguridad (TDE) • SQL Server 2014 • No hay soporte para TDE. • Solo tiene que elegir: rendimiento o seguridad? • SQL Server 2016 • Admite el cifrado de datos transparente. • Ahora usted tiene rendimiento y seguridad
  • 42. Escalado de almacenamiento • SQL Server 2014 • Escalabilidad limitada: hasta 2 sockets / 64 núcleos. • Cuanto más núcleos, más log records son creados. • Sólo hay un hilo " Offline Checkpoint ". Single Offline Checkpoint Thread Del Tran2 (TS 450) Del Tran3 (TS 250) Insert into Hekaton T1 Log in SQL Table Del Tran1 (TS150) SQL Transaction log disk To update DATA and DELTA files.
  • 43. Escalado de almacenamiento • SQL Server 2016 • No más límites! • Ahora hay múltiples hilos " Offline Checkpoint " por cada contenedor. Offline Checkpoint Thread Del Tran2 (TS 450) Del Tran3 (TS 250) Insert into Hekaton T1 Log in SQL Table Del Tran1 (TS150) SQL Transaction log disk Offline Checkpoint ThreadOffline Checkpoint Thread
  • 44. Desarrollo • SQL Server 2014 • No se permiten modificaciones! • Afinamiento de la base de datos • En respuesta a los cambios en los patrones de datos. • Desarrollo de aplicaciones / modificación. • Métodos ágiles de desarrollo / iterativos. • Necesidad de ser capaz de modificar el esquema de base de datos.
  • 45. Desarrollo • SQL Server 2016 • ALTER es sportado!! • ALTER PROC y sp_recompile soportado • ALTER TABLE • add/alter/drop column/constraint • ALTER INDEX • Add/drop index supported • Change HASH index bucket_count through index REBUILD
  • 46. Desarrollo • SQL Server 2016 • Todavía hay algunas limitaciones ... • ALTER TABLE es una operación fuera de línea; requiere memoria 2X • sp_rename sin embargo, no está soportado
  • 47. Cambio en procesamiento de consultas • SQL Server 2014 • Planes paralelos se utilizan para las tablas de en memoria • Optimizado para OLTP. • Si se une a una tabla optimizada para memoria con un Column Store utilizará DOP = 1. • Se pierde el beneficio del ColumnStore
  • 48. Cambio en procesamiento de consultas • SQL Server 2016 • Planes paralelos ahora son compatibles! • Ahora usted puede tener el beneficio de Column Store mientras hace join con Memory Optimized Tables. • Análisis en tiempo real son ahora posibles, más velocidad!
  • 49. T-SQL Soportado • SQL 2016 • Más fácil convertir las aplicaciones existentes! • Ahora es compatible con: • {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
  • 50. T-SQL Soportado • SQL 2016 • Ahora es compatible con: • DML Triggers are now supported. • AFTER triggers, natively compiled.
  • 51. Migración / Manejabilidad • SQL 2016 • En SQL Server 2014 existe una limitación de collation • Ahora soportan todas las collations. • Non-BIN2 collations en index key columns • Non-Latin code pages para (var)char columns • Non-BIN2 collations para comparación y ordenamiento
  • 52. Resumen de mejoras en SQL 2016 • Tamaño máximo de tabla en memoria pasa de 256MB-> 2 TB • Collations además BIN2 permitieron columnas en los índices (aconsejado que no se desempeñan tan bien) • ALTER TABLE se puede utilizar en las tablas de memoria para agregar, eliminar o alterar las columnas, o para agregar, eliminar o reconstruir los índices. • ALTER PROCEDURE se puede usar en forma nativa compilado procedimientos almacenados • Procedimientos compilados de forma nativa permite sintaxis adicional (LEFT JOIN, SELECT DISTINCT, UNION, todas las funciones matemáticas) • Permite escalar con mayor cantidad de sockets • AlwaysOn replicas ven in-memory cambios de datos “undelayed”. • Mejor garbage collection
  • 53. Mejoras en En memoria OLTP Característica / Límite SQL Server 2014 SQL Server 2016 El tamaño máximo de la tabla duradera 256 GB 2 TB LOB (varbinary (max), [n] varchar (max)) No soportado Soportado* Cifrado de datos transparente (TDE) No soportado Soportado Desconectado Checkpoint Hilos 1 1 por contenedor ALTER PROCEDURE / sp_recompile No soportado Apoyado (totalmente en línea) llamadas a procedimientos anidados nativas No soportado Soportado De forma nativa-compilado UDF escalares No soportado Soportado ALTER TABLE No soportado (DROP / re-crear) admite de forma parcial (fuera de línea - detalles a continuación) disparadores DML No soportado admite de forma parcial (DESPUÉS, de forma nativa compilado) Los índices de las columnas anulables No soportado Soportado colaciones no BIN2 en columnas de clave de índice No soportado Soportado No latino páginas de códigos para [var] columnas CHAR No soportado Soportado la comparación no BIN2 / clasificación en módulos nativos No soportado Soportado Llaves extranjeras No soportado Soportado Compruebe / Restricciones de unicidad No soportado Soportado Paralelismo No soportado Soportado OUTER JOIN, O, NO, UNION [ALL], distinto, EXISTE, EN No soportado Soportado Múltiples conjuntos de resultados activos (MARS) (Medios mejor soporte de Entity Framework). No soportado Soportado Diseñador de tablas SSMS No soportado Soportado Fuente: http: //sqlperformance.com/2015/05/sql-server-2016/in-memory-OLTP-enhancements
  • 54. CREATE DATABASE HowInMemObjectsAffectDesign ON PRIMARY ( NAME = N'HowInMemObjectsAffectDesign', FILENAME = N‘Drive:HowInMemObjectsAffectDesign.mdf' , SIZE = 2GB , MAXSIZE = UNLIMITED, FILEGROWTH = 10% ), FILEGROUP [MemoryOptimizedFG] CONTAINS MEMORY_OPTIMIZED_DATA ( NAME = N'HowInMemObjectsAffectDesign_inmemFiles', FILENAME = N'Drive:InMemfiles' , MAXSIZE = UNLIMITED) LOG ON ( NAME = N'HowInMemObjectsAffectDesign_log', FILENAME = N'Drive:HowInMemObjectsAffectDesign_log.ldf' , SIZE = 1GB , MAXSIZE = 2GB , FILEGROWTH = 10%); GO Permitir in memory tables en la base de datos 54 Agregar un filegroup para almacenar los delta files
  • 55. Creación de Tabla Memory Optimized Permanent 55 CREATE TABLE Customers.Customer ( CustomerId integer NOT NULL IDENTITY ( 1,1 ) , CustomerNumber char(10) COLLATE Latin1_General_100_BIN2 NOT NULL, CONSTRAINT XPKCustomer PRIMARY KEY NONCLUSTERED HASH ( CustomerId) WITH ( BUCKET_COUNT = 50000), INDEX CustomerNumber NONCLUSTERED ( CustomerNumber) ) WITH ( MEMORY_OPTIMIZED = ON , DURABILITY = SCHEMA_AND_DATA) go
  • 56. Creación de Tabla Memory Optimized Permanent CREATE TABLE Customers.Customer ( CustomerId integer NOT NULL IDENTITY ( 1,1 ) , CustomerNumber char(10) COLLATE Latin1_General_100_BIN2 NOT NULL, CONSTRAINT XPKCustomer PRIMARY KEY NONCLUSTERED HASH ( CustomerId) WITH ( BUCKET_COUNT = 50000), INDEX CustomerNumber NONCLUSTERED ( CustomerNumber) ) WITH ( MEMORY_OPTIMIZED = ON , DURABILITY = SCHEMA_AND_DATA) go 56 Character column debe ser binario para index/compare en código nativo Tabla es durable Hash Index usado para Primary Key. Estimated Rows in Table 25000 Indicar que es tabla en memoria Bw Tree Index sobre Customer Number
  • 57. El acceso a los datos utilizando el código compilado (Nativo) 68 • En lugar de ser interpretado, el procedimiento almacenado se compila a código máquina • Sintaxis limitada • Sintaxis permitida • http://msdn.microsoft.com/en- us/library/dn452279.aspx
  • 59. SQL Server 2016 Column Store Index InMemory Tables OLTP