27
SQL Server sobre Azure (IaaS) Pablo Doval SQL/BI Team Lead

SQL Server sobre Microsoft Azure (IaaS)

Embed Size (px)

DESCRIPTION

Presentación de mi charla sobre SQL Server en máquinas virtuales en Azure para el GWAB 2014 Madrid.

Citation preview

Page 1: SQL Server sobre Microsoft Azure (IaaS)

SQL Server sobre Azure (IaaS)Pablo Doval

SQL/BI Team Lead

Page 2: SQL Server sobre Microsoft Azure (IaaS)

¡Encantado!

■SQL/BI Team Lead

http://geeks.ms/blogs/palvarez

@PabloDoval

[email protected]

Page 3: SQL Server sobre Microsoft Azure (IaaS)

¿Por qué IaaS?

Page 4: SQL Server sobre Microsoft Azure (IaaS)

SQL Database en Azure

■Administrada automágicamente■Nos centramos en la parte lógica■Alta Disponibilidad por defecto

■Simplicidad de Escalado■Actualización de tamaño dinámica■Soporte de Federaciones

■Herramientas disponibles■Económica

Page 5: SQL Server sobre Microsoft Azure (IaaS)

Si esto es tan genial… ¿por qué esta sesión?

■Volumen de Datos:■Limite 150 Gb (+ Federación)

■Rendimiento:■Conexiones Simultáneas, Busy Neighbours, paralelismo, etc.

■Características:■Particionado, Compresión, etc.

■Complejidades a la hora de migrar:■Consideraciones de Conectividad■Soporte T-SQL Limitado

Page 6: SQL Server sobre Microsoft Azure (IaaS)

¿Por qué Iaas?

Rendimiento Predecible

Alta Carga Transaccional

Entornos de DW

Page 7: SQL Server sobre Microsoft Azure (IaaS)

Ok, vamos a montarlo en una VM…

Tamaño Características

Núcleos Memoria Máximo Discos (1Tb) Ancho de Banda

XS (A0) Compartidos 768 Mb 1 5 Mbps

S (A1) 1 1,75 Gb 2 100 Mbps

M (A2) 2 3,5 Gb 4 200 Mbps

L(A3) 4 7 Gb 8 400 Mbps

XL (A4) 8 14 Gb 16 800 Mbps

A5 2 14 Gb 4 200 Mbps

A6 4 28 Gb 8 1000 Mbps

A7 8 56 Gb 16 2000 Mbps

A8 8 56 Gb N/A N/A

A9 16 112 Gb N/A N/A

Page 8: SQL Server sobre Microsoft Azure (IaaS)

Discos en Microsoft Azure Storage

http://<account>.blob.core.windows.net/<container>/<blobname>

BlobContenedorCuenta

sqlsrv01disks

vhds

Data1.vhd

Log.vhd

other SQLSrv.iso

Page 9: SQL Server sobre Microsoft Azure (IaaS)

Limitaciones

Cuenta

20.000 IOPS

Page 10: SQL Server sobre Microsoft Azure (IaaS)

Rendimiento: 1 Fichero

E/S Aleatoria (Páginas) E/S Secuencial (Extents)

Lecturas Escrituras Lecturas Escrituras

IOPS 500 500 500 300

MB/s 4 MB/s 4 MB/s 30 MB/s 20 MB/s

Page 11: SQL Server sobre Microsoft Azure (IaaS)

Rendimiento: 4 Ficheros

E/S Aleatoria (Páginas) E/S Secuencial (Extents)

Lecturas Escrituras Lecturas Escrituras

IOPS 2000 2000 2000 1300

MB/s 20 MB/s 20 MB/s 120 MB/s 80 MB/s

Page 12: SQL Server sobre Microsoft Azure (IaaS)

Rendimiento: 8 Ficheros

E/S Aleatoria (Páginas) E/S Secuencial (Extents)

Lecturas Escrituras Lecturas Escrituras

IOPS 4000 4000 2500 2600

MB/s 30 MB/s 30 MB/s 150 MB/s 160 MB/s

Page 13: SQL Server sobre Microsoft Azure (IaaS)

Rendimiento: 16 Ficheros

E/S Aleatoria (Páginas) E/S Secuencial (Extents)

Lecturas Escrituras Lecturas Escrituras

IOPS 8000 8000 2500 5000

MB/s 60 MB/s 60 MB/s 150 MB/s 300 MB/s

Page 14: SQL Server sobre Microsoft Azure (IaaS)

Rendimiento: IOPS

1 4 8 160

1000

2000

3000

4000

5000

6000

7000

8000

9000

500

2000

4000

8000

500

2000

4000

8000

500

2000

2500 2500

300

1300

2500

5000 Suma de Lecturas (E/S Aleatoria)Suma de Escrituras (E/S Aleatoria)Suma de Lecturas (E/S Secuencial)Suma de Escrituras (E/S Secuencial)

Page 15: SQL Server sobre Microsoft Azure (IaaS)

Rendimiento: MB/s

1 4 8 160

50

100

150

200

250

300

350

420

30

60

420

30

60

30

120

150 150

20

80

160

300

Suma de Lecturas (E/S Aleatoria)Suma de Escrituras (E/S Aleatoria)Suma de Lecturas (E/S Secuencial)Suma de Escrituras (E/S Secuencial)

Page 16: SQL Server sobre Microsoft Azure (IaaS)

■Considerar la carga de trabajo:■Si la actividad principal es de datos (lecturas):

■usar discos separados y Files/FileGroups■Si la actividad principal es de log de transacciones (inserts, updates):

■volumen stripped para el Log ( o Storage Pools)

■Recomendaciones sobre TempDb

■Usar Compresión / Particionado / Instant File Initializacion

■Trace Flag T1117

Otras Recomendaciones de Disco

Page 17: SQL Server sobre Microsoft Azure (IaaS)

¿Qué más podemos hacer?

Page 18: SQL Server sobre Microsoft Azure (IaaS)

■Deshabilita del Write-Ahead Logging■Puede mejorar el rendimiento…

■ … ¡pero tenemos que tener claras las implicaciones!

Delayed Transaction Durability

Page 19: SQL Server sobre Microsoft Azure (IaaS)

In-Memory OLTP (Hekaton de toda la vida)

• Latencia extremadamente baja

• Mejora de Rendimiento (hasta un X30)

• Mejora de Escalabilidad

• Estructura en Memoria• Integrado en el motor relacional SQL Server• Soporte ACID• No hay locks ni latches• T-SQL se compila a código nativo

Tabla Hekaton

In-Memory OLTP engine: Tablas e Indices Hekaton

Compilador de Sprocs nativos

Compilador de Hekaton

Protocolo TDS y Gestión de Sesión

Log de Transacciones Fichero de Datos

Buffer PoolLock Manager

Cache de planes

Parser y optimizer

Page 20: SQL Server sobre Microsoft Azure (IaaS)

■Replicas secundarias con AlwaysOn en lectura

■Columnstore Indexes

■Optimización de Consultas AdHoc

Otras Técnicas con SQL 2014

Page 21: SQL Server sobre Microsoft Azure (IaaS)

■Procesadores:■MAXDOP■NUMA

■Memoria:■Max Server Memory

■Red:■Network packet size■Peticiones desde el mismo Cloud Service / VNet

Otras Recomendaciones Generales

Page 22: SQL Server sobre Microsoft Azure (IaaS)

■ SQL Database en Azure está bien en escenarios sencillos■.. y no tan sencillos, usando instancias Premium■podemos empezar a trabajar desde el minuto 1 sin preocuparnos

de la infrastructura■hay que tener en cuenta sus limitaciones

■Pero en ocasiones necesitamos SQL Server en MVs ■mucho mas versátil■requiere configuración minuciosa

Resumen

Page 23: SQL Server sobre Microsoft Azure (IaaS)

¿Preguntas?

Page 25: SQL Server sobre Microsoft Azure (IaaS)
Page 26: SQL Server sobre Microsoft Azure (IaaS)
Page 27: SQL Server sobre Microsoft Azure (IaaS)