Novedades de SQL Server 2014 en motor relacional

Preview:

DESCRIPTION

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

Citation preview

#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 relacionalEn 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 DataWarehouseColumnar indexes

8

C

1

C

2

C

3

C

5

C

6

C

4Columnstore 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 DataWarehouseSegmentos

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 DataWarehouseBeneficios

11

In-Memory DataWarehouseDiferencias

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-MemoryDataWarehouse

In-Memory DataWarehouseCompresión

14

19,7GB

10,9GB

5,0GB4,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 memorymanager)

SQL Server 2014 • Limitar IOPS por volumen

Resource Governor para IONuevo!

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 VLTVery 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

TempdbPor 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 estimatorEl 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

Est

imarse

lecti

vid

ad

del p

red

icad

oWHERE

• Se decide el algoritmo de obtención de datos

• Malas interpretaciones producen

• Malos planes de ejecución

• Mal rendimiento de consultas

Cardinality estimatorEl mayor cambio en el motor “OnDisk” desde SQL Server 7.0

31

Cardinality estimatorDesde 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 statisticsEn SQL Server 2008 R2 SP1

33

DEMO

35

-Tempdb

-Incremental statistics

Novedades en SQL Server 2014Que 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

ResumenExprime 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 verticalMejorar disponibilidad

del datoMigrar == optimizar¿?

¿Preguntas?

38

¡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

Recommended