SlideShare una empresa de Scribd logo
Patrones de escalalidad en
Microsoft Azure SQL Database
Eduardo Castro, PhD.
2
Fuentes de esta presentación
MSDN Channel 9
 Microsoft Azure SQL Databases
 SQL Azure Scalability
 Microsoft Azure SQL Databases Overview
 Microsoft Azure Elastic Scale
La plataforma de datos de Microsoft

Azure Data Services para soluciones
5
Plataforma Microsoft SQL
Físico
Virtual
Infraestructura como Servicio
Plataforma como un Servicio
SQL Server
Máquinas físicas (hierro en bruto)
SQL Server Private Cloud
Máquinas virtualizadas
SQL Server en Azure VM
Máquinas virtualizadas
Base de datos SQL Azure
Bases de datos virtualizados
SQL
Dedicado
costo más alto
Menor costo
compartido
Administración Superior Baja la Administración
Nube Híbrida
On Premises
Fuera de las
instalaciones
SQL SQL
SQL SQL SQL
SQL SQL SQL
SQL
6
Base de datos SQL Azure
Base de datos relacional -como-un-servicio, totalmente administrado por
Microsoft
Diseñado para aplicaciones en la nube
Plataforma de base de datos de
nivel empresarial con la
economía nube
SQL Database - Niveles de servicio de base de datos
• •• •••
• •• •••
Rendimiento predecible
Web / Business
Básico / Standard /
Premium
Máquina
Escribe
Lee
Memoria
DB 1
DB 2
DB 3
DB 4
DB 7
DB 5 DB 6
DB 8
DB 9
Máquina
Escribe
Lee
Memoria
DB 1
DB 2
DB 3
DB 4
DB 7
DB 5 DB 6
DB 8
DB 9
DB 1
DB 2
DB 3
DB
4
DB 7
DB 5
DB
6
DB 8
DB 9
Vecino ruidoso!
Delimitadores
eliminan vecinos
ruidosos
9
Opciones de escalabilidad en la base de datos SQL
Azure
Rendimiento previsible: escalamiento hacia arriba o
hacia abajo (vertical)
• Cambie de niveles de servicio para una base de datos dada, con base en las necesidades de
capacidad / rendimiento
Escalamiento elástico: Horizontal
• Añadir o eliminar bases de datos como más o menos capacidad / rendimiento según sea necesario
10
Opciones de escalabilidad en la base de datos SQL
Azure
Básico
Estándar
Premium
Básico Básico Básico Básico Básico Básico
Premium
Estándar
Escalamiento OUT / IN
Escalahaciaarriba/abajo
11
Rendimiento escalable
• Básico,Estándar, y Premium proporcionan el aumento de los niveles de rendimiento
• El rendimiento se expresa en unidades de rendimiento de base de datos (DTU)
 DTU es una medida combinada de la CPU, IO lectura, IO escritura, y la memoria
• Escala de rendimiento arriba / abajo a través del portal, las API, PS, o T-SQL
para reflejar la demanda real o anticipada
• Base de datos permanece en línea, durante el cambio
• Facturación por hora
5 10 20 50 100 200 800DTU
B S0
S1
S2
P1
P2
P3
12
Unidad de Rendimiento de Base de Datos- DTU
 Representa la capacidad relativa (recursos) asignado a la base de datos
 Medida de CPU, la memoria, y lecturas y escrituras
 Simplifica las opciones selección de rendimiento
Monitoreo
% De Nivel de rendimiento actual
Utilización
75%
Leer
50%
Escribir
50%
UPC
60%
Memoria
Calcular
Escribe
Lee
Memoria
DB carga de
trabajo
Cuadro delimitador
13
Nuevos niveles de rendimiento
Básico Estándar Prima
Niveles de Desempeño
(DTU)
5 S0: 10
S1: 20
S2: 50
P1: 100
P2:200
P3: 800
Resultados de ASDB 16600 tx/hora S1: ,520 tx/minuto
S1: ,940 tx/minuto
S2: 2570 tx/minuto
P1: 105 tx/segundo
P2: 228 tx/segundo
P3: 735 tx/segundo
El tamaño máximo de DB 2GB 250GB 500GB
Precio * por hora (mes) 0,0069 dólares (~ $ 5) S0: 0,0208 dólares (~ $ 15)
S1: $ 0,0417 (~ $ 30)
S2: 0,1042 dólares (~ $ 75)
P1: 0,6458 dólares (~ $ 465)
P2: $ 1.292 (~ $ 930)
P3: $ 5.167 (~ $ 3720)
* A partir de 1 de noviembrest
14
RESULTADO
UPC
Escribe
Lee
UPC
Escribe
Lee
Gobernanza de Recursos
Las solicitudes de recursos no se rechazan, pero se ponen en cola
La sobrecarga puede dar lugar a transacciones de larga ejecución o posiblidad
de timeout
SELECT * FROM a
JOIN b ON …
UPC
Escribe
Lee
15
La elección de los niveles de desempeño
La migración desde on Premises
 Crear escenarios de prueba
La migración desde Web & Business
 Utilice master.sys.resource_stats
El cambio entre los niveles
 Utilice userdb.sys.dm_db_resource_stats
Afinamiento de consultas
 sys.dm_exec_query_stats
 sys.dm_exec_query_sql_text()
 sys.dm_exec_query_plan
 sys.dm_exec_requests
 sys.dm_exec_sessions
16
Cómo cambiar el Nivel de Rendimiento
PowerShell
 Set-AzureSqlDatabase
REST
 Update Database / ServiceLevelObjectiveId
.NET
 Microsoft.WindowsAzure.Management.Sql.
SqlManagementClient
 client.Databases.Update(...)
T-SQL
 ALTER DATABASE … MODIFY (EDITION = …)
17
Administración de cuotas
Cuota por servidor
 6 Servidores por suscripción
Cuotas por DB
 1600 DTU
 150 bases de datos
Ejemplos
 2 P3 = 2x800 DTU = 1600 DTU
 160 S0 = 160x10 DTU = 1600 DTU
 200 S2 = 200x50 DTU = 10000 DTU
 1 P3, 14 S2,10 S0 ... = 1.600 DTU / 25 DB
18
Monitoreo de las base de datos
• Monitorear el consumo de recursos y
establecer alertas y notificaciones para guiar
las decisiones de escalablidad
• Métricas incluyen el uso de DTU, el uso de
recursos, el tamaño de la base de datos, la
salud de conexión
• Dashboard para ver resumen del rendimiento
19
Monitoreo de recursos
master.sys.resource_stats
 5 minutos promedio
userdb.sys.dm_db_resource_stats
 15 segundos promedios
20
Eslastic Scale en SQL Azure
• Escalamiento hasta miles de bases de datos utilizando el patrón de base de
datos fragmentadas (Sharding)
• Soporta añadir, divider y combinar “shards” con el movimiento de datos
• Los clientes pueden combinar resultados de la consulta de múltiples “shards”
Shards de SQL Database
21
Conceptos
(1) Base de
Datos
(2) Sharding Clave
. . .
(3) Shard Map
Manager
(4) Shard
(4) Shard
(5) Shard Set
(6) Tabla fragmentada
(7) Tabla
(8) Shardlet
ID de cliente Nombre
1 Alicia
2 Bob
Tabla Cliente
ID DataCenter Nombre
DC
1 Boston
2 Miami
Tabla DataCenter
22
Uso de escalamiento por Sharding
Aplicación
Desarrollador
Aplicación
.NET
Shard Map Management (SMM)
• Define grupos de shards para su aplicación
• Maneja mapeo de llaves de enrutamiento
Data Dependent Routing (DDR)
• Enruta solicitudes entrantes para el shard correcto,
por ejemplo, dado un ID de cliente
• Información de enrutamiento se guarda en caché por
eficiencia
Multi-Shard Query (MSQ)
• Procesamiento interactivo a través de varios Shards
• La misma sentencia ejecutada en todos los shards
con UNION ALL
API de cliente .NET
Servicio de
Gestión
Admin /
DevOps
23
Data Dependent Routing (DDR)
using (SqlConnection conn = ShardMap.OpenConnectionForKey(
shardingKey,
connectionString,
ConnectionOptions.Validate));
{
using (SqlCommand cmd = new SqlCommand()
{
cmd.Connection = conn;
cmd.CommandText = "SELECT * FROM customers WHERE customer ID =
104";
SqlDataReader sdr = cmd.ExecuteReader();
}
}
24
Caché: mejora el rendimiento de las operaciones de Shards
• Global Shard Map (GSM) - estado de todos los Shards en el Shard Map
• Local Shard Map (LSM) - estado de todos los Shards en un Shard concreto
• Client Cache (eager/lazy) - estado de todos los Shards en los Shard Maps / Shards
conocidos
Data Dependent Routing (DDR)
Client App
DDR API
CacheDesarrollador
Shard Map
Manager
GSM
DB
LSM
25
Multi-Shard Query
Cliente App
MSQ API
SELECT count(*)
FROM customers
UNION ALL result set
DB1
[0-100)
. . .DB2
[100-200)
DB3
[200-300)
DB4
[300-400)
DB5
[400-500)
DB6
[500-600)
DBn
[N - n + 100)
Aplicación
Revelador
Shard Map
Manager
26
Consulta de multiples Shards
using (MultiShardConnection conn = new MultiShardConnection(m_shardMap.GetAllShards(null),
MultiShardTestUtils.GetTestSqlCredential()))
{
using (MultiShardCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "SELECT count(*) FROM customers";
cmd.CommandType = CommandType.Text;
cmd.Policy = MultiShardPolicy.PartialResults;
using (MultiShardDataReader sdr = cmd.ExecuteReader(includeShardNameColumn: true))
{
while (sdr.Read())
{
// Now consume results from the data reader…
}
}
}
}
27
Combinación y división de Shards
• Dividir: crear dos shards con base en uno
• Combinar: crear un shards de dos shards distintos
• Mover a un punto: mover un solo tenand a un shard específico
SplitMerge
DB1
[0-100)
. . .DB2
[100-200)
DB3
[200-300)
DB4
[300-400)
DB5
[400-500)
DB6
[500-600)
DBn
[N - n + 100)
DB2.1
[0-200)
DB5.1
[400-450)
DB5.2
[450-500)
28
Geo-Replicación
DB1
DB1
DB1
DB1
DB1
Preguntas?

Más contenido relacionado

PPTX
Consideraciones de sql server hardware
PPTX
Introduccion a SQL Server 2016 Stretch Databases
PPTX
SQL Server 2016 Tablas en Memoria
PPTX
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
PPTX
Vistazo a lo nuevo en SQL Server 2016
PPTX
Consideraciones de discos sql server hardware
PPTX
Consideraciones de memoria sql server hardware
PPTX
Vistazo a SQL Server 2016
Consideraciones de sql server hardware
Introduccion a SQL Server 2016 Stretch Databases
SQL Server 2016 Tablas en Memoria
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
Vistazo a lo nuevo en SQL Server 2016
Consideraciones de discos sql server hardware
Consideraciones de memoria sql server hardware
Vistazo a SQL Server 2016

La actualidad más candente (20)

PDF
SQL Server 2014 Nuevas Capacidades
PPTX
Que hay de nuevo en SQL 2016 Analysis Services
PPTX
SQL 2016 Column Store Index
PPTX
Recuperación ante desastres y continuidad del negocio con Azure SQL Database
PPTX
SQL Server 2014 Mejoras del DB Engine
PDF
Novedades de SQL Server 2014 en motor relacional
PPTX
MS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datos
PPTX
SQL Server 2014 y La Plataforma de Datos
PPTX
Aplicando SQL Server 2016 en Microsoft Azure Virtual Machine
PPTX
Introducción al SQL Server 2016 Query Store
PDF
Novedades SQL Server 2012 para desarrolladores
PPTX
SQL 2016 Mejoras en InMemory OLTP y Column Store Index
PPTX
SQL Server 2014 infraestructura hibrida y nube
PPTX
Conociendo los cambios de SQL Server a partir de 2012 a 2016
PPTX
In-Memory OLTP en SQL Server 2016
PPTX
SQL Server Query Processor
PPTX
Introducción a Azure DocumentDB
PPTX
Data Amp 2017 - Whats New in SQL Server 2017
PPTX
Microsoft Azure SQL Database
PPTX
VMs de alto rendimiento para SQL Server en AWS y Azure
SQL Server 2014 Nuevas Capacidades
Que hay de nuevo en SQL 2016 Analysis Services
SQL 2016 Column Store Index
Recuperación ante desastres y continuidad del negocio con Azure SQL Database
SQL Server 2014 Mejoras del DB Engine
Novedades de SQL Server 2014 en motor relacional
MS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datos
SQL Server 2014 y La Plataforma de Datos
Aplicando SQL Server 2016 en Microsoft Azure Virtual Machine
Introducción al SQL Server 2016 Query Store
Novedades SQL Server 2012 para desarrolladores
SQL 2016 Mejoras en InMemory OLTP y Column Store Index
SQL Server 2014 infraestructura hibrida y nube
Conociendo los cambios de SQL Server a partir de 2012 a 2016
In-Memory OLTP en SQL Server 2016
SQL Server Query Processor
Introducción a Azure DocumentDB
Data Amp 2017 - Whats New in SQL Server 2017
Microsoft Azure SQL Database
VMs de alto rendimiento para SQL Server en AWS y Azure
Publicidad

Destacado (13)

PPTX
Mejores prácticas desarrollo de base de datos
PPTX
Smart Grid Big Data e IoT
PPTX
Microsoft R Server
PPTX
Servicios cognitivos y su integración
PPTX
Microsoft R Server
PPTX
SQL Server 2016 Reporting Services
PPTX
Cuadros de mando de BI con SQL Server
PDF
Análisis de datos con Apache Spark
PPTX
Servicios cognitivos y su integración
PPTX
MVC: La Vista
PDF
PowerQueryy el Lenguaje M
PPTX
Introduccion a SQL Server 2017 en Docker
PPTX
Introduccion a Big Data stack
Mejores prácticas desarrollo de base de datos
Smart Grid Big Data e IoT
Microsoft R Server
Servicios cognitivos y su integración
Microsoft R Server
SQL Server 2016 Reporting Services
Cuadros de mando de BI con SQL Server
Análisis de datos con Apache Spark
Servicios cognitivos y su integración
MVC: La Vista
PowerQueryy el Lenguaje M
Introduccion a SQL Server 2017 en Docker
Introduccion a Big Data stack
Publicidad

Similar a Azure sql database escalabilidad (20)

PPTX
Escalabilidad en azure sql database con elastic scale
PPTX
Escalabilidad en SQL Server Database en Azure
PPTX
The azure platform TechDay2010
PPTX
Escalabilidad en azure web sites y sql database
PPTX
SQL Azure Administración, Desempeño y Mantenimiento
PPTX
Introducción a la plataforma sql azure
PPTX
Casos de bodegas de datos con SQL Server
PPTX
Introducción a Microsoft Azure SQL Data Warehouse
PPTX
Windows Azure, Lo mejor del PDC
PPTX
Servicios de datos en la nube
PDF
Sql azure data warehouse gab jorge muchaypina
PPTX
SQL Azure Datawarehouse
PPTX
Windows Azure SQL Databases
PPTX
SSRS modelo IaaS en la Nube | SolidQ Summit 2014
PPTX
Mejores prácticas de Data Warehouse con SQL Server
PPTX
SQL como un servicio en la nube
PDF
Novedades sql server 2008 para developers
PPTX
EC2: Cómputo en la nube a profundidad
PPT
IntroduccióN A Sql Server 2005
PPTX
WorkShop SQL Azure
Escalabilidad en azure sql database con elastic scale
Escalabilidad en SQL Server Database en Azure
The azure platform TechDay2010
Escalabilidad en azure web sites y sql database
SQL Azure Administración, Desempeño y Mantenimiento
Introducción a la plataforma sql azure
Casos de bodegas de datos con SQL Server
Introducción a Microsoft Azure SQL Data Warehouse
Windows Azure, Lo mejor del PDC
Servicios de datos en la nube
Sql azure data warehouse gab jorge muchaypina
SQL Azure Datawarehouse
Windows Azure SQL Databases
SSRS modelo IaaS en la Nube | SolidQ Summit 2014
Mejores prácticas de Data Warehouse con SQL Server
SQL como un servicio en la nube
Novedades sql server 2008 para developers
EC2: Cómputo en la nube a profundidad
IntroduccióN A Sql Server 2005
WorkShop SQL Azure

Más de Eduardo Castro (20)

PPTX
Introducción a polybase en SQL Server
PPTX
Creando tu primer ambiente de AI en Azure ML y SQL Server
PPTX
Seguridad en SQL Azure
PPTX
Azure Synapse Analytics MLflow
PPTX
SQL Server 2019 con Windows Server 2022
PPTX
Novedades en SQL Server 2022
PPTX
Introduccion a SQL Server 2022
PPTX
Machine Learning con Azure Managed Instance
PPTX
Novedades en sql server 2022
PDF
Sql server 2019 con windows server 2022
PDF
Introduccion a databricks
PDF
Pronosticos con sql server
PDF
Data warehouse con azure synapse analytics
PPTX
Que hay de nuevo en el Azure Data Lake Storage Gen2
PPTX
Introduccion a Azure Synapse Analytics
PPTX
Seguridad de SQL Database en Azure
PPTX
Python dentro de SQL Server
PDF
Servicios Cognitivos de de Microsoft
TXT
Script de paso a paso de configuración de Secure Enclaves
PDF
Introducción a conceptos de SQL Server Secure Enclaves
Introducción a polybase en SQL Server
Creando tu primer ambiente de AI en Azure ML y SQL Server
Seguridad en SQL Azure
Azure Synapse Analytics MLflow
SQL Server 2019 con Windows Server 2022
Novedades en SQL Server 2022
Introduccion a SQL Server 2022
Machine Learning con Azure Managed Instance
Novedades en sql server 2022
Sql server 2019 con windows server 2022
Introduccion a databricks
Pronosticos con sql server
Data warehouse con azure synapse analytics
Que hay de nuevo en el Azure Data Lake Storage Gen2
Introduccion a Azure Synapse Analytics
Seguridad de SQL Database en Azure
Python dentro de SQL Server
Servicios Cognitivos de de Microsoft
Script de paso a paso de configuración de Secure Enclaves
Introducción a conceptos de SQL Server Secure Enclaves

Último (20)

PPTX
Sesion 1 de microsoft power point - Clase 1
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PDF
Estrategia de apoyo tecnología grado 9-3
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PDF
Calidad desde el Docente y la mejora continua .pdf
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PDF
taller de informática - LEY DE OHM
PPT
introduccion a las_web en el 2025_mejoras.ppt
PPTX
Propuesta BKP servidores con Acronis1.pptx
PDF
Influencia-del-uso-de-redes-sociales.pdf
PPTX
Presentación de Redes de Datos modelo osi
PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
PPT
Que son las redes de computadores y sus partes
Sesion 1 de microsoft power point - Clase 1
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
Zarate Quispe Alex aldayir aplicaciones de internet .docx
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
Plantilla para Diseño de Narrativas Transmedia.pdf
Estrategia de apoyo tecnología grado 9-3
El-Gobierno-Electrónico-En-El-Estado-Bolivia
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
historia_web de la creacion de un navegador_presentacion.pptx
Calidad desde el Docente y la mejora continua .pdf
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
REDES INFORMATICAS REDES INFORMATICAS.pptx
taller de informática - LEY DE OHM
introduccion a las_web en el 2025_mejoras.ppt
Propuesta BKP servidores con Acronis1.pptx
Influencia-del-uso-de-redes-sociales.pdf
Presentación de Redes de Datos modelo osi
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
Que son las redes de computadores y sus partes

Azure sql database escalabilidad

  • 1. Patrones de escalalidad en Microsoft Azure SQL Database Eduardo Castro, PhD.
  • 2. 2 Fuentes de esta presentación MSDN Channel 9  Microsoft Azure SQL Databases  SQL Azure Scalability  Microsoft Azure SQL Databases Overview  Microsoft Azure Elastic Scale
  • 3. La plataforma de datos de Microsoft 
  • 4. Azure Data Services para soluciones
  • 5. 5 Plataforma Microsoft SQL Físico Virtual Infraestructura como Servicio Plataforma como un Servicio SQL Server Máquinas físicas (hierro en bruto) SQL Server Private Cloud Máquinas virtualizadas SQL Server en Azure VM Máquinas virtualizadas Base de datos SQL Azure Bases de datos virtualizados SQL Dedicado costo más alto Menor costo compartido Administración Superior Baja la Administración Nube Híbrida On Premises Fuera de las instalaciones SQL SQL SQL SQL SQL SQL SQL SQL SQL
  • 6. 6 Base de datos SQL Azure Base de datos relacional -como-un-servicio, totalmente administrado por Microsoft Diseñado para aplicaciones en la nube Plataforma de base de datos de nivel empresarial con la economía nube
  • 7. SQL Database - Niveles de servicio de base de datos • •• ••• • •• •••
  • 8. Rendimiento predecible Web / Business Básico / Standard / Premium Máquina Escribe Lee Memoria DB 1 DB 2 DB 3 DB 4 DB 7 DB 5 DB 6 DB 8 DB 9 Máquina Escribe Lee Memoria DB 1 DB 2 DB 3 DB 4 DB 7 DB 5 DB 6 DB 8 DB 9 DB 1 DB 2 DB 3 DB 4 DB 7 DB 5 DB 6 DB 8 DB 9 Vecino ruidoso! Delimitadores eliminan vecinos ruidosos
  • 9. 9 Opciones de escalabilidad en la base de datos SQL Azure Rendimiento previsible: escalamiento hacia arriba o hacia abajo (vertical) • Cambie de niveles de servicio para una base de datos dada, con base en las necesidades de capacidad / rendimiento Escalamiento elástico: Horizontal • Añadir o eliminar bases de datos como más o menos capacidad / rendimiento según sea necesario
  • 10. 10 Opciones de escalabilidad en la base de datos SQL Azure Básico Estándar Premium Básico Básico Básico Básico Básico Básico Premium Estándar Escalamiento OUT / IN Escalahaciaarriba/abajo
  • 11. 11 Rendimiento escalable • Básico,Estándar, y Premium proporcionan el aumento de los niveles de rendimiento • El rendimiento se expresa en unidades de rendimiento de base de datos (DTU)  DTU es una medida combinada de la CPU, IO lectura, IO escritura, y la memoria • Escala de rendimiento arriba / abajo a través del portal, las API, PS, o T-SQL para reflejar la demanda real o anticipada • Base de datos permanece en línea, durante el cambio • Facturación por hora 5 10 20 50 100 200 800DTU B S0 S1 S2 P1 P2 P3
  • 12. 12 Unidad de Rendimiento de Base de Datos- DTU  Representa la capacidad relativa (recursos) asignado a la base de datos  Medida de CPU, la memoria, y lecturas y escrituras  Simplifica las opciones selección de rendimiento Monitoreo % De Nivel de rendimiento actual Utilización 75% Leer 50% Escribir 50% UPC 60% Memoria Calcular Escribe Lee Memoria DB carga de trabajo Cuadro delimitador
  • 13. 13 Nuevos niveles de rendimiento Básico Estándar Prima Niveles de Desempeño (DTU) 5 S0: 10 S1: 20 S2: 50 P1: 100 P2:200 P3: 800 Resultados de ASDB 16600 tx/hora S1: ,520 tx/minuto S1: ,940 tx/minuto S2: 2570 tx/minuto P1: 105 tx/segundo P2: 228 tx/segundo P3: 735 tx/segundo El tamaño máximo de DB 2GB 250GB 500GB Precio * por hora (mes) 0,0069 dólares (~ $ 5) S0: 0,0208 dólares (~ $ 15) S1: $ 0,0417 (~ $ 30) S2: 0,1042 dólares (~ $ 75) P1: 0,6458 dólares (~ $ 465) P2: $ 1.292 (~ $ 930) P3: $ 5.167 (~ $ 3720) * A partir de 1 de noviembrest
  • 14. 14 RESULTADO UPC Escribe Lee UPC Escribe Lee Gobernanza de Recursos Las solicitudes de recursos no se rechazan, pero se ponen en cola La sobrecarga puede dar lugar a transacciones de larga ejecución o posiblidad de timeout SELECT * FROM a JOIN b ON … UPC Escribe Lee
  • 15. 15 La elección de los niveles de desempeño La migración desde on Premises  Crear escenarios de prueba La migración desde Web & Business  Utilice master.sys.resource_stats El cambio entre los niveles  Utilice userdb.sys.dm_db_resource_stats Afinamiento de consultas  sys.dm_exec_query_stats  sys.dm_exec_query_sql_text()  sys.dm_exec_query_plan  sys.dm_exec_requests  sys.dm_exec_sessions
  • 16. 16 Cómo cambiar el Nivel de Rendimiento PowerShell  Set-AzureSqlDatabase REST  Update Database / ServiceLevelObjectiveId .NET  Microsoft.WindowsAzure.Management.Sql. SqlManagementClient  client.Databases.Update(...) T-SQL  ALTER DATABASE … MODIFY (EDITION = …)
  • 17. 17 Administración de cuotas Cuota por servidor  6 Servidores por suscripción Cuotas por DB  1600 DTU  150 bases de datos Ejemplos  2 P3 = 2x800 DTU = 1600 DTU  160 S0 = 160x10 DTU = 1600 DTU  200 S2 = 200x50 DTU = 10000 DTU  1 P3, 14 S2,10 S0 ... = 1.600 DTU / 25 DB
  • 18. 18 Monitoreo de las base de datos • Monitorear el consumo de recursos y establecer alertas y notificaciones para guiar las decisiones de escalablidad • Métricas incluyen el uso de DTU, el uso de recursos, el tamaño de la base de datos, la salud de conexión • Dashboard para ver resumen del rendimiento
  • 19. 19 Monitoreo de recursos master.sys.resource_stats  5 minutos promedio userdb.sys.dm_db_resource_stats  15 segundos promedios
  • 20. 20 Eslastic Scale en SQL Azure • Escalamiento hasta miles de bases de datos utilizando el patrón de base de datos fragmentadas (Sharding) • Soporta añadir, divider y combinar “shards” con el movimiento de datos • Los clientes pueden combinar resultados de la consulta de múltiples “shards” Shards de SQL Database
  • 21. 21 Conceptos (1) Base de Datos (2) Sharding Clave . . . (3) Shard Map Manager (4) Shard (4) Shard (5) Shard Set (6) Tabla fragmentada (7) Tabla (8) Shardlet ID de cliente Nombre 1 Alicia 2 Bob Tabla Cliente ID DataCenter Nombre DC 1 Boston 2 Miami Tabla DataCenter
  • 22. 22 Uso de escalamiento por Sharding Aplicación Desarrollador Aplicación .NET Shard Map Management (SMM) • Define grupos de shards para su aplicación • Maneja mapeo de llaves de enrutamiento Data Dependent Routing (DDR) • Enruta solicitudes entrantes para el shard correcto, por ejemplo, dado un ID de cliente • Información de enrutamiento se guarda en caché por eficiencia Multi-Shard Query (MSQ) • Procesamiento interactivo a través de varios Shards • La misma sentencia ejecutada en todos los shards con UNION ALL API de cliente .NET Servicio de Gestión Admin / DevOps
  • 23. 23 Data Dependent Routing (DDR) using (SqlConnection conn = ShardMap.OpenConnectionForKey( shardingKey, connectionString, ConnectionOptions.Validate)); { using (SqlCommand cmd = new SqlCommand() { cmd.Connection = conn; cmd.CommandText = "SELECT * FROM customers WHERE customer ID = 104"; SqlDataReader sdr = cmd.ExecuteReader(); } }
  • 24. 24 Caché: mejora el rendimiento de las operaciones de Shards • Global Shard Map (GSM) - estado de todos los Shards en el Shard Map • Local Shard Map (LSM) - estado de todos los Shards en un Shard concreto • Client Cache (eager/lazy) - estado de todos los Shards en los Shard Maps / Shards conocidos Data Dependent Routing (DDR) Client App DDR API CacheDesarrollador Shard Map Manager GSM DB LSM
  • 25. 25 Multi-Shard Query Cliente App MSQ API SELECT count(*) FROM customers UNION ALL result set DB1 [0-100) . . .DB2 [100-200) DB3 [200-300) DB4 [300-400) DB5 [400-500) DB6 [500-600) DBn [N - n + 100) Aplicación Revelador Shard Map Manager
  • 26. 26 Consulta de multiples Shards using (MultiShardConnection conn = new MultiShardConnection(m_shardMap.GetAllShards(null), MultiShardTestUtils.GetTestSqlCredential())) { using (MultiShardCommand cmd = conn.CreateCommand()) { cmd.CommandText = "SELECT count(*) FROM customers"; cmd.CommandType = CommandType.Text; cmd.Policy = MultiShardPolicy.PartialResults; using (MultiShardDataReader sdr = cmd.ExecuteReader(includeShardNameColumn: true)) { while (sdr.Read()) { // Now consume results from the data reader… } } } }
  • 27. 27 Combinación y división de Shards • Dividir: crear dos shards con base en uno • Combinar: crear un shards de dos shards distintos • Mover a un punto: mover un solo tenand a un shard específico SplitMerge DB1 [0-100) . . .DB2 [100-200) DB3 [200-300) DB4 [300-400) DB5 [400-500) DB6 [500-600) DBn [N - n + 100) DB2.1 [0-200) DB5.1 [400-450) DB5.2 [450-500)