SlideShare ist ein Scribd-Unternehmen logo
1 von 35
#SQSummit
@enriquecatala
Novedades de SQL Server 2014 en
Motor Relacional
Mentor
ecatala@solidq.com
MVP – MCT – MCSE
Enrique Catalá Bañuls
Agenda
2
1. In-Memory OLTP
2. In-Memory DataWarehouse
3. Buffer Pool Extension
4. Resource Governor para IO
5. Operaciones online
6. Mejoras en motor On-Disk
In-Memory motor relacional
En SQL Server 2014
4
In-Memory OLTP
• 5-30x rendimiento en
OLTP
• Integrado en SQL Server
In-Memory
DataWarehouse
• 5-25x rendimiento
• Elevada compression
• Soporta clustered y
escrituras
Buffer pool extension
• Mejora transparente
• Hasta 3x rendimiento
Aplicación directa en cargas de trabajo
Entornos OLTP altamente
concurrentes
Entornos BI con DW
grandes y agregaciones
masivas
Entornos transaccionales
sobre OnDisk de grandes
volúmenes de datos
Pilares In-Memory OLTP
5
Integracion completa
• T-SQL conocido
• Mismas herramientas
• Integrado
completamente en SQL
Server (sin licencia
extra)
Optimizado para memoria
RAM
• Nuevas estructuras de
almacenamiento
• Sin Buffer Pool
• Punteros a datos
• Todo son índices de
cobertura
Alta concurrencia
• Gestión de concurrencia
optimista multiversion
• Soporte ACID
• Nuevo motor con
algorimos lock-free
• Sin latches
T-SQL supereficiente
• T-SQL compilado a
código máquina en C
• Los SP son DLL
• Compilaciones
superagresivas a código
máquina
DEMO
6
In-Memory OLTP
Agenda
7
1. In-Memory OLTP
2. In-Memory DataWarehouse
3. Buffer Pool Extension
4. Resource Governor para IO
5. Operaciones online
6. Mejoras en motor On-Disk
• Disco y memoria
• Integrado en el core
• Beneficios
• 10x-100x mas rápido
• Transparente
• Facil implantación
In-Memory DataWarehouse
Columnar indexes
8
C
1
C
2
C
3
C
5
C
6
C
4
Columnstore
Index
Representation
• Unidad básica de
transferencia disco-
memoria
• Contiene valores de una
sola columna
• Row Group=filas de varios
segmentos
• Cada segmento en LOB
diferente
In-Memory DataWarehouse
Segmentos
9
C1 C2 C3 C5 C6C4
Row
group
Segments
In-Memory DataWarehouse
10
• Clustered y actualizables NUEVO!
• Particionado NUEVO!
• Elevada compresión NUEVO!
• No es necesario más índices
• Pensados para grandes volúmenes
• Tabla en nuevo formato
• No duplica espacio
In-Memory DataWarehouse
Beneficios
11
In-Memory DataWarehouse
Diferencias
12
NONCLUSTERED
columnstore
CLUSTERED
columnstore
• SQL Server 2014
• Write-read
• Estructura nueva de objeto
• Contiene deltastore en
rowstore temporal y deltas
• SQL Server 2012+
• Readonly
• Duplica espacio
• Contiene subset de columnas
DEMO
13
In-Memory
DataWarehouse
In-Memory DataWarehouse
Compresión
14
19.7GB
10.9GB
5.0GB
4.0GB
6.9GB
1.8GB
TABLE WITH
CUSTOMARY
INDEXING
TABLE WITH
CUSTOMARY
INDEXING (PAGE
COMPRESSION)
TABLE WITH NO
INDEXING
TABLE WITH NO
INDEXING (PAGE
COMPRESSION)
TABLE WITH
COLUMNSTORE
INDEX
CLUSTERED
COLUMNSTORE
Agenda
15
1. In-Memory OLTP
2. In-Memory DataWarehouse
3. Buffer Pool Extension
4. Resource Governor para IO
5. Operaciones online
6. Mejoras en motor On-Disk
• Caché de segundo
nivel
• Optimización
transparente OLTP (3x-
10x)
• Durable
Buffer pool extension
16
ALTER SERVER CONFIGURATION
SET BUFFER POOL EXTENSION
{ ON ( FILENAME = 'os_file_path_and_name'
, SIZE = <size> [ KB | MB | GB ] )
| OFF }
Buffer pool extension
17
Buffer pool extension
19
Beneficios
Buenas prácticas
• Tamaño hasta 1:32 RAM:BPE
• Recomendado 1:4 a 1:8
• Testear, impacto negativo en escrituras
• Transparencia
• Maximizar ROI hardware actual
• Minimizar cuellos de botella I/O
• Más barato que RAM en grandes cantidades
• Valido para Standard Edition
Agenda
20
1. In-Memory OLTP
2. In-Memory DataWarehouse
3. Buffer Pool Extension
4. Resource Governor para IO
5. Operaciones online
6. Mejoras en motor On-Disk
Resource Governor
21
Resource Governor
22
SQL Server 2012
• # Resource pools 64 (antes 20)
• AFFINITY para vincular a nodos NUMA
• Nuevo CAP_CPU_PERCENT
• Se gobiernan multipage allocations (nuevo memory
manager)
SQL Server 2014 • Limitar IOPS por volumen
Resource Governor para IO
Nuevo!
23
CREATE RESOURCE POOL pool_name
[ WITH
( [ MIN_CPU_PERCENT = value ]
[ [ , ] MAX_CPU_PERCENT = value ]
[ [ , ] CAP_CPU_PERCENT = value ]
[ [ , ] AFFINITY {SCHEDULER = AUTO |
(Scheduler_range_spec) | NUMANODE =
(NUMA_node_range_spec)} ]
[ [ , ] MIN_MEMORY_PERCENT = value ]
[ [ , ] MAX_MEMORY_PERCENT = value ]
[ [ , ] MIN_IOPS_PER_VOLUME = value ]
[ [ , ] MAX_IOPS_PER_VOLUME = value ])
]
DEMO
24
Resource Governor para IO
Agenda
25
1. In-Memory OLTP
2. In-Memory DataWarehouse
3. Buffer Pool Extension
4. Resource Governor para IO
5. Operaciones online
6. Mejoras en motor On-Disk
Desafios resueltos en las VLT
Very Large Tables
26
Mantenimiento
Rendimiento
• Entorno transaccional
• Reportes
• Índices
• Estadísticas
• Historificación
• Espacio
DEMO
27
Desafios resueltos en las
VLT
Agenda
28
1. In-Memory OLTP
2. In-Memory DataWarehouse
3. Buffer Pool Extension
4. Resource Governor para IO
5. Operaciones online
6. Mejoras motor On-Disk
Relajado el proceso de envío de páginas
sucias a disco para tempdb
Tempdb
Por fin!
29
Select into … #tmp
• Bulk inserts
• Select into .. #tmp
SORT_IN_TEMPDB
• Creacion de índices con
SORT_IN_TEMP_DB
Tablas temporales en RAM en % elevado
Optimización directa solo por migrar
Cardinality estimator
El mayor cambio en el motor “OnDisk” desde SQL Server 7.0
30
• Aporta el nº de registros
involucrados en la
sentencia (en cada paso)
• Estima el recuento de
filas afectadas
• Aporta distribución de
valores
• Aporta info distinct
count
• Aporta info sobre
duplicados
Estimarselectividaddelpredicado
WHERE
• Se decide el algoritmo de obtención de
datos
• Malas interpretaciones producen
• Malos planes de ejecución
• Mal rendimiento de consultas
Cardinality estimator
El mayor cambio en el motor “OnDisk” desde SQL Server 7.0
31
Cardinality estimator
Desde SQL Server 7.0 hasta SQL Server 2012
32
Independencia
• Distribución de datos
independiente de unos
campos a otros salvo
que se indique lo
contrario
Uniformidad
• Los valores se
distribuyen
uniformemente
Contenido
• Si algo se busca será
porque existe
• Si una table se cruza,
será porque existe el
dato en ambas
• El rango menor se
asume contenido en el
mayorInclusión
• En equijoin se assume
que el valor existe
¿Acaso eso
sucede?
Threshold update statistics
En SQL Server 2008 R2 SP1
33
DEMO
35
-Tempdb
-Incremental statistics
Novedades en SQL Server 2014
Que no dan tiempo en esta sesión…
36
AlwaysON
• Hasta 8 secundarios
• 4 síncronos
• Soporte nativo para
cloud
• Leer secundarios con
principal caido
Gestión
• Backups
autogestionados
• Herramientas de análisis
para migrar a In-Memory
• Mejor soporte
ExtendedEvents
• Estadísticas
incrementales
Entornos híbridos
• Atachar ficheros de
BBDD en cloud
• Backups a la nube
• Migración a la nube
Con WS2012 R2
• 640 Cores
• 4Tb de RAM
• Virtual
• 64 cores y 1Tb ram
• Soporte SMB Direct 3.0
Seguridad
• Cifrado de backups
• Nuevos roles y permisos
granulares
Desarrollo
• SQL Server Data Tools
• Ahora para BI
Resumen
Exprime al máximo tu HW actual !!!
37
In-memory
• In-memory OLTP
• In-memory DW
• Buffer pool extension
Administración
• Mejoras en operaciones
online
• Resource governor para
IO
On-disk
• Nuevo cardinality
estimator
• Reescritura de
componente clave
planes ejecución
• Estadísticas
incrementales
La mayor actualización desde SQL Server 2005
Escalabilidad vertical
Mejorar disponibilidad
del dato
Migrar == optimizar¿? 
¡Gracias!
Siéntate a comer con nosotros o tómate un café y aclara tus
dudas 
39
@enriquecatala
Mentor – MVP SQL Server
Enrique Catalá Bañuls

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Query store
Query storeQuery store
Query store
 
MS SQL Server 2014 - In-Memory OLTP
MS SQL Server 2014 - In-Memory OLTPMS SQL Server 2014 - In-Memory OLTP
MS SQL Server 2014 - In-Memory OLTP
 
Vistazo a SQL Server 2016
Vistazo a SQL Server 2016Vistazo a SQL Server 2016
Vistazo a SQL Server 2016
 
Novedades en SQL Azure V12
Novedades en SQL Azure V12Novedades en SQL Azure V12
Novedades en SQL Azure V12
 
Azure sql database escalabilidad
Azure sql database escalabilidadAzure sql database escalabilidad
Azure sql database escalabilidad
 
Introducción al SQL Server 2016 Query Store
Introducción al SQL Server 2016 Query StoreIntroducción al SQL Server 2016 Query Store
Introducción al SQL Server 2016 Query Store
 
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
 
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
 
Vistazo a lo nuevo en SQL Server 2016
Vistazo a lo nuevo en SQL Server 2016Vistazo a lo nuevo en SQL Server 2016
Vistazo a lo nuevo en SQL Server 2016
 
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
 
Query store
Query storeQuery store
Query store
 
Novedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladoresNovedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladores
 
Que hay de nuevo en SQL 2016 Analysis Services
Que hay de nuevo en SQL 2016 Analysis ServicesQue hay de nuevo en SQL 2016 Analysis Services
Que hay de nuevo en SQL 2016 Analysis Services
 
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
 
Column stored index
Column stored index Column stored index
Column stored index
 
Polybase
PolybasePolybase
Polybase
 
SQL Server Query Processor
SQL Server Query ProcessorSQL Server Query Processor
SQL Server Query Processor
 
SQL Server 2014 infraestructura hibrida y nube
SQL Server 2014 infraestructura hibrida y nubeSQL Server 2014 infraestructura hibrida y nube
SQL Server 2014 infraestructura hibrida y nube
 
SQL 2016 Column Store Index
SQL 2016 Column Store IndexSQL 2016 Column Store Index
SQL 2016 Column Store Index
 
Sql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql serverSql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql server
 

Ähnlich wie Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014

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
Guillermo Taylor
 
Novedades sql server 2008 para developers
Novedades sql server 2008 para developersNovedades sql server 2008 para developers
Novedades sql server 2008 para developers
Enrique Catala Bañuls
 

Ähnlich wie Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014 (20)

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
 
Nuevos escenarios BI con SQL Server 2014
Nuevos escenarios BI con SQL Server 2014Nuevos escenarios BI con SQL Server 2014
Nuevos escenarios BI con SQL Server 2014
 
Sql server 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
 
SQL Server 2014 y La Plataforma de Datos
SQL Server 2014 y La Plataforma de DatosSQL Server 2014 y La Plataforma de Datos
SQL Server 2014 y La Plataforma de Datos
 
Sql server 2014 y la plataforma de datos
Sql server 2014 y la plataforma de datosSql server 2014 y la plataforma de datos
Sql server 2014 y la plataforma de datos
 
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
 
In-Memory OLTP en SQL Server 2014
In-Memory OLTP en SQL Server 2014In-Memory OLTP en SQL Server 2014
In-Memory OLTP en SQL Server 2014
 
Gánale la partida a tu SQL Server, configuración ideal para que todo vaya bie...
Gánale la partida a tu SQL Server, configuración ideal para que todo vaya bie...Gánale la partida a tu SQL Server, configuración ideal para que todo vaya bie...
Gánale la partida a tu SQL Server, configuración ideal para que todo vaya bie...
 
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
 
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)
 
Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014
Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014
Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014
 
Novedades sql server 2008 para developers
Novedades sql server 2008 para developersNovedades sql server 2008 para developers
Novedades sql server 2008 para developers
 
In memory
In memoryIn memory
In memory
 
Oracle GG presentacion
Oracle GG presentacionOracle GG presentacion
Oracle GG presentacion
 
Migración a sql server 2016
Migración a sql server 2016Migración a sql server 2016
Migración a sql server 2016
 
Presentacion sqlprueba
Presentacion sqlpruebaPresentacion sqlprueba
Presentacion sqlprueba
 
Introducción a Azure DocumentDB
Introducción a Azure DocumentDBIntroducción a Azure DocumentDB
Introducción a Azure DocumentDB
 
Cómo nos va a ayudar la tecnología de in memory en sql server 2014 para desem...
Cómo nos va a ayudar la tecnología de in memory en sql server 2014 para desem...Cómo nos va a ayudar la tecnología de in memory en sql server 2014 para desem...
Cómo nos va a ayudar la tecnología de in memory en sql server 2014 para desem...
 
Funciones del DBA
Funciones del DBAFunciones del DBA
Funciones del DBA
 

Mehr von SolidQ

Mehr von SolidQ (20)

SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
 
SolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLSSolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLS
 
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
 
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
 
SolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantesSolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantes
 
Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?
 
SQL Server 2017 en Linux
SQL Server 2017 en LinuxSQL Server 2017 en Linux
SQL Server 2017 en Linux
 
Columnstore en la vida real
Columnstore en la vida realColumnstore en la vida real
Columnstore en la vida real
 
PowerApprízate
PowerApprízatePowerApprízate
PowerApprízate
 
Jugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocksJugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocks
 
Analizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BIAnalizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BI
 
Mantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesMantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para Dummies
 
R en relacional
R en relacionalR en relacional
R en relacional
 
Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!
 
Arquitecturas lambda en Azure
Arquitecturas lambda en AzureArquitecturas lambda en Azure
Arquitecturas lambda en Azure
 
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
 
BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018
 
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
 
Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018
 
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
 

Kürzlich hochgeladen

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

Kürzlich hochgeladen (11)

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

Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014

  • 1. #SQSummit @enriquecatala Novedades de SQL Server 2014 en Motor Relacional Mentor ecatala@solidq.com MVP – MCT – MCSE Enrique Catalá Bañuls
  • 2. Agenda 2 1. In-Memory OLTP 2. In-Memory DataWarehouse 3. Buffer Pool Extension 4. Resource Governor para IO 5. Operaciones online 6. Mejoras en motor On-Disk
  • 3. In-Memory motor relacional En SQL Server 2014 4 In-Memory OLTP • 5-30x rendimiento en OLTP • Integrado en SQL Server In-Memory DataWarehouse • 5-25x rendimiento • Elevada compression • Soporta clustered y escrituras Buffer pool extension • Mejora transparente • Hasta 3x rendimiento Aplicación directa en cargas de trabajo Entornos OLTP altamente concurrentes Entornos BI con DW grandes y agregaciones masivas Entornos transaccionales sobre OnDisk de grandes volúmenes de datos
  • 4. Pilares In-Memory OLTP 5 Integracion completa • T-SQL conocido • Mismas herramientas • Integrado completamente en SQL Server (sin licencia extra) Optimizado para memoria RAM • Nuevas estructuras de almacenamiento • Sin Buffer Pool • Punteros a datos • Todo son índices de cobertura Alta concurrencia • Gestión de concurrencia optimista multiversion • Soporte ACID • Nuevo motor con algorimos lock-free • Sin latches T-SQL supereficiente • T-SQL compilado a código máquina en C • Los SP son DLL • Compilaciones superagresivas a código máquina
  • 6. Agenda 7 1. In-Memory OLTP 2. In-Memory DataWarehouse 3. Buffer Pool Extension 4. Resource Governor para IO 5. Operaciones online 6. Mejoras en motor On-Disk
  • 7. • Disco y memoria • Integrado en el core • Beneficios • 10x-100x mas rápido • Transparente • Facil implantación In-Memory DataWarehouse Columnar indexes 8 C 1 C 2 C 3 C 5 C 6 C 4 Columnstore Index Representation
  • 8. • Unidad básica de transferencia disco- memoria • Contiene valores de una sola columna • Row Group=filas de varios segmentos • Cada segmento en LOB diferente In-Memory DataWarehouse Segmentos 9 C1 C2 C3 C5 C6C4 Row group Segments
  • 10. • Clustered y actualizables NUEVO! • Particionado NUEVO! • Elevada compresión NUEVO! • No es necesario más índices • Pensados para grandes volúmenes • Tabla en nuevo formato • No duplica espacio In-Memory DataWarehouse Beneficios 11
  • 11. In-Memory DataWarehouse Diferencias 12 NONCLUSTERED columnstore CLUSTERED columnstore • SQL Server 2014 • Write-read • Estructura nueva de objeto • Contiene deltastore en rowstore temporal y deltas • SQL Server 2012+ • Readonly • Duplica espacio • Contiene subset de columnas
  • 13. In-Memory DataWarehouse Compresión 14 19.7GB 10.9GB 5.0GB 4.0GB 6.9GB 1.8GB TABLE WITH CUSTOMARY INDEXING TABLE WITH CUSTOMARY INDEXING (PAGE COMPRESSION) TABLE WITH NO INDEXING TABLE WITH NO INDEXING (PAGE COMPRESSION) TABLE WITH COLUMNSTORE INDEX CLUSTERED COLUMNSTORE
  • 14. Agenda 15 1. In-Memory OLTP 2. In-Memory DataWarehouse 3. Buffer Pool Extension 4. Resource Governor para IO 5. Operaciones online 6. Mejoras en motor On-Disk
  • 15. • Caché de segundo nivel • Optimización transparente OLTP (3x- 10x) • Durable Buffer pool extension 16 ALTER SERVER CONFIGURATION SET BUFFER POOL EXTENSION { ON ( FILENAME = 'os_file_path_and_name' , SIZE = <size> [ KB | MB | GB ] ) | OFF }
  • 17. Buffer pool extension 19 Beneficios Buenas prácticas • Tamaño hasta 1:32 RAM:BPE • Recomendado 1:4 a 1:8 • Testear, impacto negativo en escrituras • Transparencia • Maximizar ROI hardware actual • Minimizar cuellos de botella I/O • Más barato que RAM en grandes cantidades • Valido para Standard Edition
  • 18. Agenda 20 1. In-Memory OLTP 2. In-Memory DataWarehouse 3. Buffer Pool Extension 4. Resource Governor para IO 5. Operaciones online 6. Mejoras en motor On-Disk
  • 20. Resource Governor 22 SQL Server 2012 • # Resource pools 64 (antes 20) • AFFINITY para vincular a nodos NUMA • Nuevo CAP_CPU_PERCENT • Se gobiernan multipage allocations (nuevo memory manager) SQL Server 2014 • Limitar IOPS por volumen
  • 21. Resource Governor para IO Nuevo! 23 CREATE RESOURCE POOL pool_name [ WITH ( [ MIN_CPU_PERCENT = value ] [ [ , ] MAX_CPU_PERCENT = value ] [ [ , ] CAP_CPU_PERCENT = value ] [ [ , ] AFFINITY {SCHEDULER = AUTO | (Scheduler_range_spec) | NUMANODE = (NUMA_node_range_spec)} ] [ [ , ] MIN_MEMORY_PERCENT = value ] [ [ , ] MAX_MEMORY_PERCENT = value ] [ [ , ] MIN_IOPS_PER_VOLUME = value ] [ [ , ] MAX_IOPS_PER_VOLUME = value ]) ]
  • 23. Agenda 25 1. In-Memory OLTP 2. In-Memory DataWarehouse 3. Buffer Pool Extension 4. Resource Governor para IO 5. Operaciones online 6. Mejoras en motor On-Disk
  • 24. Desafios resueltos en las VLT Very Large Tables 26 Mantenimiento Rendimiento • Entorno transaccional • Reportes • Índices • Estadísticas • Historificación • Espacio
  • 26. Agenda 28 1. In-Memory OLTP 2. In-Memory DataWarehouse 3. Buffer Pool Extension 4. Resource Governor para IO 5. Operaciones online 6. Mejoras motor On-Disk
  • 27. Relajado el proceso de envío de páginas sucias a disco para tempdb Tempdb Por fin! 29 Select into … #tmp • Bulk inserts • Select into .. #tmp SORT_IN_TEMPDB • Creacion de índices con SORT_IN_TEMP_DB Tablas temporales en RAM en % elevado Optimización directa solo por migrar
  • 28. Cardinality estimator El mayor cambio en el motor “OnDisk” desde SQL Server 7.0 30 • Aporta el nº de registros involucrados en la sentencia (en cada paso) • Estima el recuento de filas afectadas • Aporta distribución de valores • Aporta info distinct count • Aporta info sobre duplicados Estimarselectividaddelpredicado WHERE
  • 29. • Se decide el algoritmo de obtención de datos • Malas interpretaciones producen • Malos planes de ejecución • Mal rendimiento de consultas Cardinality estimator El mayor cambio en el motor “OnDisk” desde SQL Server 7.0 31
  • 30. Cardinality estimator Desde SQL Server 7.0 hasta SQL Server 2012 32 Independencia • Distribución de datos independiente de unos campos a otros salvo que se indique lo contrario Uniformidad • Los valores se distribuyen uniformemente Contenido • Si algo se busca será porque existe • Si una table se cruza, será porque existe el dato en ambas • El rango menor se asume contenido en el mayorInclusión • En equijoin se assume que el valor existe ¿Acaso eso sucede?
  • 31. Threshold update statistics En SQL Server 2008 R2 SP1 33
  • 33. Novedades en SQL Server 2014 Que no dan tiempo en esta sesión… 36 AlwaysON • Hasta 8 secundarios • 4 síncronos • Soporte nativo para cloud • Leer secundarios con principal caido Gestión • Backups autogestionados • Herramientas de análisis para migrar a In-Memory • Mejor soporte ExtendedEvents • Estadísticas incrementales Entornos híbridos • Atachar ficheros de BBDD en cloud • Backups a la nube • Migración a la nube Con WS2012 R2 • 640 Cores • 4Tb de RAM • Virtual • 64 cores y 1Tb ram • Soporte SMB Direct 3.0 Seguridad • Cifrado de backups • Nuevos roles y permisos granulares Desarrollo • SQL Server Data Tools • Ahora para BI
  • 34. Resumen Exprime al máximo tu HW actual !!! 37 In-memory • In-memory OLTP • In-memory DW • Buffer pool extension Administración • Mejoras en operaciones online • Resource governor para IO On-disk • Nuevo cardinality estimator • Reescritura de componente clave planes ejecución • Estadísticas incrementales La mayor actualización desde SQL Server 2005 Escalabilidad vertical Mejorar disponibilidad del dato Migrar == optimizar¿? 
  • 35. ¡Gracias! Siéntate a comer con nosotros o tómate un café y aclara tus dudas  39 @enriquecatala Mentor – MVP SQL Server Enrique Catalá Bañuls

Hinweis der Redaktion

  1. En esta sesión trataremos las novedades de SQL Server 2014 en el área de motor relacional. Trataremos en profunidad las siguientes tecnologías: Buffer Pool Extension, mejoras en Resource Governor 2.0, novedades en índices columnares indexes, mejoras en particionado, estadísticas e indexación
  2. Lets start off by taking a look at how in-memory technologies have evolved in SQL Server. This may be a surprise to many of you, but our in-memory journey actually started way back in SQL Server 2008 R2, when our engineering team made a key design decision to build in-memory technology into the core data platform, rather than acquire and stitch in an in-memory solution to run in parallel to the core database. Around this timeframe, both Oracle and IBM went down the acquire-and-stitch route: Oracle acquired TimesTen in-memory database and IBM acquired Natiza. The challenge with the acquire-and-stitch solution is that in-memory impacts to the overall database, which in the past were designed to run on disk. So the challenge we often hear from customers using TimesTen or Natiza is that using in-memory breaks other core DB2 and Oracle database functionality. For example, we have heard from many customers that RAC break when you use TimesTen. Not only is there a functional compatibility issue, the customer is also forced to learn a new set of APIs because it is a completely different database. This is not the design approach we took. We believe our customers want to utilize other key capabilities that SQL Server and the broader Microsoft Data Platform have to offer in conjunction with in-memory. They don’t want to use a different tool set for in-memory database than they do for disk database, they still wan to use T-SQL and SQL Server management when enabling in-memory. This is the unique design approach we took back when we first started improving analytics by building in-memory into PowerPivot for billions for rows of data analysis in Excel. Then in SQL Server 2012, we expanded our in-memory footprint with the same built-in approach by adding in-memory to Analysis Services so IT could build data models much faster, and introduced an in-memory column store that could improve query speeds by 100x. With SQL Server 2014, we are covering the final workload by introducing an in-memory OLTP solution—or in-memory rowstore—to significantly speed transactional performance. We also enhanced the in-memory columnstore with faster performance and significantly higher data compression so memory utilization can be optimized. Now, here’s one point to note if you listened to the keynote at Oracle openworld. Larry announced a new in-memory columnstore that would be built-in to the core database. So as you can see Oracle is following our footsteps and realizing the stitch strategy doesn’t work when it comes to something as critical to the overall database as in-memory. And he also mentioned that it will be an optio—we all know what that means. And their new solution is in an early beta. SQL Server 2014 is our third release of in-memory solutions across the data platform, and in a single sku, no options or add ons.
  3. Demo muy light emplazando a la sesión de ruben garrigos
  4. Table consists of column store and row store DML (update, delete, insert) operations leverage delta store INSERT Values Always lands into delta store DELETE Logical operation Data physically remove after REBUILD operation is performed. UPDATE DELETE followed by INSERT. BULK INSERT if batch < 100k, inserts go into delta store, otherwise columnstore SELECT Unifies data from Column and Row stores - internal UNION operation. “Tuple mover” converts data into columnar format once segment is full (1M of rows) REORGANIZE statement forces tuple mover to start.
  5. size of a rowgroup is 102,400 rows For small bulk loads with less than 102,400 rows, all of the rows go directly to the deltastore.
  6. Durable = solo almacena páginas limpias por lo que si reinicia sql server no se pierden datos
  7. CAP_CPU_PERCENT permite especificar realmente que se establece un tope máximo fijo a la conexión independientemente de si hay o no competencia por recursos. En un entorno donde “si quieres mas, pagas mas”, esta configuración es mejor que utilizar MAX_CPU_PERCENT
  8. The ability to govern physical IO only applies to user operations and not system tasks. System tasks include write operations to the transaction log and Lazy Writer IO operations. The Resource Govenor applies primarily to user read operations because most write operations are typically performed by system tasks.
  9. Existe el concepto eager writes, por el cual, cada vez que ocurre una carga masiva, el propio SQL Server envía en bloques de 32 páginas sucias contiguas (las nuevas generalmente) a disco, para minimizar el impacto sobre el buffer pool, checkpoints y sobre lazy writer. Esto afectaba a tempdb también hasta ahora. For example:  You could have a stored procedure that runs in 8ms.  In that stored procedure you select into … #tmp … then use the #tmp and drop it as the stored procedure completes. Prior to the SQL Server 2014 change the select into may have written all the pages accumulated to disk.  The SQL Server 2014, eager write behavior, no longer forces these pages to disk as quickly as previous versions.   This behavior allows the pages to be stored in RAM (buffer pool), queried and the table dropped (removed from buffer pool and returned to free list) without ever going to disk as long memory is available.   By avoiding the physical I/O when possible the performance of the TEMPDB, bulk operation is significantly increased and it reduces the impact on the I/O path resources as well.
  10. En definitiva, estimar la selectividad de WHERE, JOIN y HAVING Muy útil la lectura http://blogs.technet.com/b/dataplatforminsider/archive/2014/03/17/the-new-and-improved-cardinality-estimator-in-sql-server-2014.aspx
  11. Infravalorar el nº de filas Usar plan en serie cuando debería ser paralelo Operadores join inapropiados Uso de índice inadecuado (seek vs scan) Sobrevalorar nº de filas Seleccionar plan paralelo cuando debe ser serie Operadores join inapropiados Uso de índice inadecuado (scan vs seek) Sobre dimensionar requerimientos ram
  12. Acaso esto se cumple en la vida real?
  13. Esto es necesario para entender la demo
  14. En esta demo veremos los cambios sobre el cardinality estimator y estadísticas incementales
  15. Todo esto se traduce en Incrementar ROI actual