SlideShare uma empresa Scribd logo
1 de 30
Baixar para ler offline
ecatala@solidq.com | @enriquecatala
Enrique Catalá Bañuls
@enriquecatala
ecatala@solidq.com
enrique@enriquecatala.com
MAD · NOV 24-25 · 2017
AGENDA
Enrique Catalá Bañuls
▪ Ingeniero Informático
▪ Microsoft Data Platform
MVP
▪ Mentor en SolidQ
▪ Tuning y alta disponibilidad
ecatala@solidq.com www.solidq.com
@enriquecatala www.enriquecatala.com
ecatala@solidq.com | @enriquecatala
SOLIDQ SUMMIT MADRID 2017
El tiempo computacional suele ser mas elevado, pero el tiempo
efectivo suele ser menor
ecatala@solidq.com | @enriquecatala
SOLIDQ SUMMIT MADRID 2017ecatala@solidq.com | @enriquecatala
SOLIDQ SUMMIT MADRID 2017
Symmetric
Multiprocessing System
(SMP)
Todas las CPU comparten
la misma memoria
Sin particionado HW para
acceso a memoria
Típico en computadoras
de consumo
Memory
CPU CPU CPU CPU
System bus
CPU CPU CPU CPU
SMP architecture
CPU
CPU
CPU
CPU
F
S
B
Main
Memory
ecatala@solidq.com | @enriquecatala
SOLIDQ SUMMIT MADRID 2017
Non-Uniform
Memory Access
Nodos
conectados por
bus compartido
Típico en
servidores de
gama media-alta
Shared Bus
Memory
Controller
CPU CPU CPU CPU
Memory
Controller
CPU CPU CPU CPU
Memory
Controller
CPU CPU CPU CPU
Memory
Controller
CPU CPU CPU CPU
Node Controller Node Controller Node Controller Node Controller
ecatala@solidq.com | @enriquecatala
SOLIDQ SUMMIT MADRID 2017
Massively Parallel
Processing
Nodos de
computación con
SQL conectados
Arquitecturas DW
petabyte (PDW,
Azure SQLDW)
ecatala@solidq.com | @enriquecatala
SOLIDQ SUMMIT MADRID 2017
SQLOS
• Crea un scheduler para
cada CPU lógica
• Es como un gestor de
recursos…OS
• User-mode
Scheduler
• Como una CPU lógica
usada por los workers
Worker
• Son como “threads”
lógicos
Task
• Unidad de trabajo para
un worker (sentencia
simple)
ecatala@solidq.com | @enriquecatala
SOLIDQ SUMMIT MADRID 2017
Basada en prioridades de procesos
p.ej: SQLCLR
Competitiva
Basada en listas de espera
p.ej: T-SQL
Cooperativa
ecatala@solidq.com | @enriquecatala
AGENDA
SOLIDQ SUMMIT MADRID 2017
Multi-Instancias
Tener varias instancias en el
mismo HW
Licenciamiento
Afinar qué cores queremos
asignar de los licenciados
ecatala@solidq.com | @enriquecatala
SOLIDQ SUMMIT MADRID 2017
Auto afinado al inicio de instancia
Hasta 30% beneficio
CPU > 8 cores HT
Se previenen mezclas logical-only o physical only nodes
SOLIDQ SUMMIT MADRID 2017
8000
8001
8002
8003
ecatala@solidq.com | @enriquecatala
SOLIDQ SUMMIT MADRID 2017
if(best_plan_for_now.cost<1) return(best_plan_for_now)
else if(
and best_plan.cost > threshold for parallelism)
return(MIN(create_paralel_plan().cost, best_plan_for_now))
Configuración
• A todos los niveles
• Instancia, BBDD,
conexión y query
Finalidad
• Limita
explicitamente el
nº de CPUs que un
worker puede usar
para una tarea
Recomendación
• En entorno OLTP
recomendado 1
• Afinar
agregaciones y op.
mantenimiento a 0
ecatala@solidq.com | @enriquecatala
SOLIDQ SUMMIT MADRID 2017
if(best_plan_for_now.cost<1) return(best_plan_for_now)
else if(MAXDOP>0
and )
return( )
Configuración
• A nivel de
instancia
• Sp_configure
Finalidad
• Cambiar
estadísticamente
el nº de planes de
ejecución
Recomendación
• En entorno OLTP
mínimo subir a 50
ecatala@solidq.com | @enriquecatala
DEMO
SOLIDQ SUMMIT MADRID 2017
Hardware
NUMA
SMP
Instancia
Soft-NUMA
DOP
Cost threshold for
parallelism
Max worker
threads
-P
BBDD DOP
Conexión Resource Governor
Query
ENABLE_PARALLEL_PLAN_PREFERENCE
MAXDOP
Limitaciones de
implementacion
Funciones
CROSS APPLY
…
QUERY
RESOURCE
GOVERNOR
BBDD
INSTANCIA
SOLIDQ SUMMIT MADRID 2017ecatala@solidq.com | @enriquecatala
SOLIDQ SUMMIT MADRID 2017
Hash
• Los valores de
filas obtienen
hash y cada hilo
se responsabiliza
de un rango
hash
Round-robin
• Los valores de
las filas se
envían al
siguiente hilo de
la lista
Broadcast
• Todas las filas se
envian a todos
los hilos
Range
• Determina a que
hilo enviar la fila
evaluando una
funcion de
rango sobre una
columna
• Rara y usada en
algunos parallel
index recreation
Demand
• Se usa un modo
pull en lugar de
push como en
las otras.
• Envia la fila al
thread que se la
está pidiendo
• Aparece en
tablas
particionadas
SOLIDQ SUMMIT MADRID 2017
Consume múltiples fuentes
y produce multiples fuentes
No se modifican las filas
Se reducen filas si aparece
un operador bitmap
ecatala@solidq.com | @enriquecatala
SOLIDQ SUMMIT MADRID 2017
Consume múltiples hilos
y produce un único hilo
Combina resultados
Es el que genera el
famoso CXPACKET wait
SOLIDQ SUMMIT MADRID 2017
Type
# producer
threads
# consumer
threads
Gather
Streams
DOP 1
Repartition
Streams
DOP DOP
Distribute
Streams
1 DOP
SOLIDQ SUMMIT MADRID 2017
Serial SerialParallel
DEMO
SOLIDQ SUMMIT MADRID 2017
Mala configuración DOP
Mala configuración de affinidad de procesador
Estadísticas desactualizadas
• Generalmente problemas HW o mala configuración HW
Cambios de context excesivos
Malas arquitecturas de aplicación que estresan la CPU
SOLIDQ SUMMIT MADRID 2017
• MAXDOP = 0
• Threshold for parallelism = 5
Nunca usar la configuración por defecto
• MAXDOP = 1
• Threshold for parallelism = 50
OLTP puro
• MAXDOP = #’Phisical cores’
DW
• MAXDOP <= #physical_cores_numa_node
Regla de oro
wait type name wait time (ms) requests
CXPACKET 786556034 128110444
LATCH_EX 255701441 155553913
ASYNC_NETWORK_IO 129888217 19083082
PAGEIOLATCH_SH 83672746 2813207
WRITELOG 70634742 48398646
SOS_SCHEDULER_YIELD 47697175 176871743
SOLIDQ SUMMIT MADRID 2017
• ALTER INDEX, Statistics operations …
• Agregaciones (AVG, MAX,…)
• Recuerda que existe Resource Governor
¿Cuándo aplicar MAXDOP?
• Recomendación = #physical_cores
• Sistemas OLTP deberian configurarse a 1
• Siempre que veamos alto % de esperas CXPACKET
¿Cuándo aplicar “max degree of parallelism”?
• Cuando quieras cambiar el nº de operaciones paralelas estadísticamente
¿Cuándo aplicar “cost threshold for parallelism?
¿QUÉ HEMOS VISTO?
ecatala@solidq.com | @enriquecatala
ecatala@solidq.com
www.solidq.com
@enriquecatala
Gracias!!!

Mais conteúdo relacionado

Mais procurados

Apache Spark and Apache Ignite: Where Fast Data Meets the IoT with Denis Magda
Apache Spark and Apache Ignite: Where Fast Data Meets the IoT with Denis MagdaApache Spark and Apache Ignite: Where Fast Data Meets the IoT with Denis Magda
Apache Spark and Apache Ignite: Where Fast Data Meets the IoT with Denis MagdaDatabricks
 
Event Streaming in the Telco Industry with Apache Kafka® and Confluent
Event Streaming in the Telco Industry with Apache Kafka® and ConfluentEvent Streaming in the Telco Industry with Apache Kafka® and Confluent
Event Streaming in the Telco Industry with Apache Kafka® and Confluentconfluent
 
UVM Ral model usage
UVM Ral model usageUVM Ral model usage
UVM Ral model usageParth Pandya
 
Library Characterization Flow
Library Characterization FlowLibrary Characterization Flow
Library Characterization FlowSatish Grandhi
 
Spark SQL Catalyst Code Optimization using Function Outlining with Kavana Bha...
Spark SQL Catalyst Code Optimization using Function Outlining with Kavana Bha...Spark SQL Catalyst Code Optimization using Function Outlining with Kavana Bha...
Spark SQL Catalyst Code Optimization using Function Outlining with Kavana Bha...Databricks
 
MIPI DevCon 2016: Testing of MIPI High Speed PHY Standard Implementations
MIPI DevCon 2016: Testing of MIPI High Speed PHY Standard ImplementationsMIPI DevCon 2016: Testing of MIPI High Speed PHY Standard Implementations
MIPI DevCon 2016: Testing of MIPI High Speed PHY Standard ImplementationsMIPI Alliance
 
Handling Billions of Edges in a Graph Database
Handling Billions of Edges in a Graph DatabaseHandling Billions of Edges in a Graph Database
Handling Billions of Edges in a Graph DatabaseArangoDB Database
 
Feed Your SIEM Smart with Kafka Connect (Vitalii Rudenskyi, McKesson Corp) Ka...
Feed Your SIEM Smart with Kafka Connect (Vitalii Rudenskyi, McKesson Corp) Ka...Feed Your SIEM Smart with Kafka Connect (Vitalii Rudenskyi, McKesson Corp) Ka...
Feed Your SIEM Smart with Kafka Connect (Vitalii Rudenskyi, McKesson Corp) Ka...HostedbyConfluent
 

Mais procurados (9)

Apache Spark and Apache Ignite: Where Fast Data Meets the IoT with Denis Magda
Apache Spark and Apache Ignite: Where Fast Data Meets the IoT with Denis MagdaApache Spark and Apache Ignite: Where Fast Data Meets the IoT with Denis Magda
Apache Spark and Apache Ignite: Where Fast Data Meets the IoT with Denis Magda
 
Event Streaming in the Telco Industry with Apache Kafka® and Confluent
Event Streaming in the Telco Industry with Apache Kafka® and ConfluentEvent Streaming in the Telco Industry with Apache Kafka® and Confluent
Event Streaming in the Telco Industry with Apache Kafka® and Confluent
 
UVM Ral model usage
UVM Ral model usageUVM Ral model usage
UVM Ral model usage
 
Library Characterization Flow
Library Characterization FlowLibrary Characterization Flow
Library Characterization Flow
 
Spark SQL Catalyst Code Optimization using Function Outlining with Kavana Bha...
Spark SQL Catalyst Code Optimization using Function Outlining with Kavana Bha...Spark SQL Catalyst Code Optimization using Function Outlining with Kavana Bha...
Spark SQL Catalyst Code Optimization using Function Outlining with Kavana Bha...
 
Intro to Apache Spark
Intro to Apache SparkIntro to Apache Spark
Intro to Apache Spark
 
MIPI DevCon 2016: Testing of MIPI High Speed PHY Standard Implementations
MIPI DevCon 2016: Testing of MIPI High Speed PHY Standard ImplementationsMIPI DevCon 2016: Testing of MIPI High Speed PHY Standard Implementations
MIPI DevCon 2016: Testing of MIPI High Speed PHY Standard Implementations
 
Handling Billions of Edges in a Graph Database
Handling Billions of Edges in a Graph DatabaseHandling Billions of Edges in a Graph Database
Handling Billions of Edges in a Graph Database
 
Feed Your SIEM Smart with Kafka Connect (Vitalii Rudenskyi, McKesson Corp) Ka...
Feed Your SIEM Smart with Kafka Connect (Vitalii Rudenskyi, McKesson Corp) Ka...Feed Your SIEM Smart with Kafka Connect (Vitalii Rudenskyi, McKesson Corp) Ka...
Feed Your SIEM Smart with Kafka Connect (Vitalii Rudenskyi, McKesson Corp) Ka...
 

Semelhante a Paralelismo en SQL Server

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...SolidQ
 
Técnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql serverTécnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql serverEnrique Catala Bañuls
 
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
 
Planes de ejecución 3.0: SQL Server 2016 y vNext
Planes de ejecución 3.0: SQL Server 2016 y vNextPlanes de ejecución 3.0: SQL Server 2016 y vNext
Planes de ejecución 3.0: SQL Server 2016 y vNextSolidQ
 
Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...
Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...
Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...SolidQ
 
Sql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladoresSql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladoresEnrique Catala Bañuls
 
Planes de ejecución 3.0 sql 2016 y v next
Planes de ejecución 3.0 sql 2016 y v nextPlanes de ejecución 3.0 sql 2016 y v next
Planes de ejecución 3.0 sql 2016 y v nextEnrique Catala Bañuls
 
Aplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorAplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorEnrique Catala Bañuls
 
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...Plain Concepts
 
Técnicas avanzadas para resolver tus problemas de sql server - SolidQ Summit ...
Técnicas avanzadas para resolver tus problemas de sql server - SolidQ Summit ...Técnicas avanzadas para resolver tus problemas de sql server - SolidQ Summit ...
Técnicas avanzadas para resolver tus problemas de sql server - SolidQ Summit ...SolidQ
 
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...SpanishPASSVC
 
Nuevo motor relacional In-memory OLTP
Nuevo motor relacional In-memory OLTPNuevo motor relacional In-memory OLTP
Nuevo motor relacional In-memory OLTPSolidQ
 
AWDC para desarrolladores y data scientists
AWDC para desarrolladores y data scientists AWDC para desarrolladores y data scientists
AWDC para desarrolladores y data scientists Edelweiss Kammermann
 
Carbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshareCarbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshareJulián Castiblanco
 
In-Memory OLTP en SQL Server 2016
In-Memory OLTP en SQL Server 2016In-Memory OLTP en SQL Server 2016
In-Memory OLTP en SQL Server 2016Joseph Lopez
 

Semelhante a Paralelismo en SQL Server (20)

Paralelismo en sql server
Paralelismo en sql serverParalelismo en sql server
Paralelismo en sql server
 
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...
 
Técnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql serverTécnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql server
 
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
 
Planes de ejecución 3.0: SQL Server 2016 y vNext
Planes de ejecución 3.0: SQL Server 2016 y vNextPlanes de ejecución 3.0: SQL Server 2016 y vNext
Planes de ejecución 3.0: SQL Server 2016 y vNext
 
Optimiza tus queries desde abajo
Optimiza tus queries desde abajoOptimiza tus queries desde abajo
Optimiza tus queries desde abajo
 
Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...
Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...
Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...
 
Sql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladoresSql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladores
 
Planes de ejecución 3.0 sql 2016 y v next
Planes de ejecución 3.0 sql 2016 y v nextPlanes de ejecución 3.0 sql 2016 y v next
Planes de ejecución 3.0 sql 2016 y v next
 
Aplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorAplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidor
 
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
 
Técnicas avanzadas para resolver tus problemas de sql server - SolidQ Summit ...
Técnicas avanzadas para resolver tus problemas de sql server - SolidQ Summit ...Técnicas avanzadas para resolver tus problemas de sql server - SolidQ Summit ...
Técnicas avanzadas para resolver tus problemas de sql server - SolidQ Summit ...
 
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
 
Originstack esp v2.5
Originstack esp v2.5Originstack esp v2.5
Originstack esp v2.5
 
Nuevo motor relacional In-memory OLTP
Nuevo motor relacional In-memory OLTPNuevo motor relacional In-memory OLTP
Nuevo motor relacional In-memory OLTP
 
Query store
Query storeQuery store
Query store
 
Funcion produccion
Funcion produccionFuncion produccion
Funcion produccion
 
AWDC para desarrolladores y data scientists
AWDC para desarrolladores y data scientists AWDC para desarrolladores y data scientists
AWDC para desarrolladores y data scientists
 
Carbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshareCarbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshare
 
In-Memory OLTP en SQL Server 2016
In-Memory OLTP en SQL Server 2016In-Memory OLTP en SQL Server 2016
In-Memory OLTP en SQL Server 2016
 

Mais de Enrique Catala Bañuls

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 serverEnrique Catala Bañuls
 
Capas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL ServerCapas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL ServerEnrique Catala Bañuls
 
Aplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorAplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorEnrique Catala Bañuls
 
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...Enrique Catala Bañuls
 
Dawarehouse como servicio en azure (sqldw)
Dawarehouse como servicio en azure (sqldw)Dawarehouse como servicio en azure (sqldw)
Dawarehouse como servicio en azure (sqldw)Enrique Catala Bañuls
 
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
 
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)Enrique Catala Bañuls
 
Como leer planes de ejecución - edición 2015
Como leer planes de ejecución - edición 2015Como leer planes de ejecución - edición 2015
Como leer planes de ejecución - edición 2015Enrique Catala Bañuls
 
HERRAMIENTA CASE PARA MODELADO DE ALMACENES DE DATOS BASADA EN LENGUAJES ESPE...
HERRAMIENTA CASE PARA MODELADO DE ALMACENES DE DATOS BASADA EN LENGUAJES ESPE...HERRAMIENTA CASE PARA MODELADO DE ALMACENES DE DATOS BASADA EN LENGUAJES ESPE...
HERRAMIENTA CASE PARA MODELADO DE ALMACENES DE DATOS BASADA EN LENGUAJES ESPE...Enrique Catala Bañuls
 
Escenarios híbridos con sql server 2014
Escenarios híbridos con sql server 2014Escenarios híbridos con sql server 2014
Escenarios híbridos con sql server 2014Enrique Catala Bañuls
 
Planes de ejecución en sql server 2014
Planes de ejecución en sql server 2014Planes de ejecución en sql server 2014
Planes de ejecución en sql server 2014Enrique Catala Bañuls
 
Aplicaciones escalables en la nube: mentiras y verdades
Aplicaciones escalables en la nube: mentiras y verdadesAplicaciones escalables en la nube: mentiras y verdades
Aplicaciones escalables en la nube: mentiras y verdadesEnrique Catala Bañuls
 
Escalabilidad horizontal y arquitecturas elásticas en Microsoft azure
Escalabilidad horizontal y arquitecturas elásticas en Microsoft azureEscalabilidad horizontal y arquitecturas elásticas en Microsoft azure
Escalabilidad horizontal y arquitecturas elásticas en Microsoft azureEnrique Catala Bañuls
 

Mais de Enrique Catala Bañuls (20)

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
 
Capas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL ServerCapas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL Server
 
Aplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorAplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidor
 
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
 
Planes de ejecucion 2016
Planes de ejecucion 2016Planes de ejecucion 2016
Planes de ejecucion 2016
 
Dawarehouse como servicio en azure (sqldw)
Dawarehouse como servicio en azure (sqldw)Dawarehouse como servicio en azure (sqldw)
Dawarehouse como servicio en azure (sqldw)
 
Query store
Query storeQuery store
Query store
 
Planes de ejecucion 2
Planes de ejecucion 2Planes de ejecucion 2
Planes de ejecucion 2
 
Planes de ejecucion 1
Planes de ejecucion 1Planes de ejecucion 1
Planes de ejecucion 1
 
Migración a sql server 2016
Migración a sql server 2016Migración a sql server 2016
Migración a sql server 2016
 
Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)
 
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
 
Como leer planes de ejecución - edición 2015
Como leer planes de ejecución - edición 2015Como leer planes de ejecución - edición 2015
Como leer planes de ejecución - edición 2015
 
HERRAMIENTA CASE PARA MODELADO DE ALMACENES DE DATOS BASADA EN LENGUAJES ESPE...
HERRAMIENTA CASE PARA MODELADO DE ALMACENES DE DATOS BASADA EN LENGUAJES ESPE...HERRAMIENTA CASE PARA MODELADO DE ALMACENES DE DATOS BASADA EN LENGUAJES ESPE...
HERRAMIENTA CASE PARA MODELADO DE ALMACENES DE DATOS BASADA EN LENGUAJES ESPE...
 
SQLCLR: .NET en el core de sql server
SQLCLR: .NET en el core de sql serverSQLCLR: .NET en el core de sql server
SQLCLR: .NET en el core de sql server
 
Escenarios híbridos con sql server 2014
Escenarios híbridos con sql server 2014Escenarios híbridos con sql server 2014
Escenarios híbridos con sql server 2014
 
Planes de ejecución en sql server 2014
Planes de ejecución en sql server 2014Planes de ejecución en sql server 2014
Planes de ejecución en sql server 2014
 
Transacciones diferidas
Transacciones diferidasTransacciones diferidas
Transacciones diferidas
 
Aplicaciones escalables en la nube: mentiras y verdades
Aplicaciones escalables en la nube: mentiras y verdadesAplicaciones escalables en la nube: mentiras y verdades
Aplicaciones escalables en la nube: mentiras y verdades
 
Escalabilidad horizontal y arquitecturas elásticas en Microsoft azure
Escalabilidad horizontal y arquitecturas elásticas en Microsoft azureEscalabilidad horizontal y arquitecturas elásticas en Microsoft azure
Escalabilidad horizontal y arquitecturas elásticas en Microsoft azure
 

Último

La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
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
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
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
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
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
 
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
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
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
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 

Último (20)

La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
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
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
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
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
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
 
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
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
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
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 

Paralelismo en SQL Server

  • 1. ecatala@solidq.com | @enriquecatala Enrique Catalá Bañuls @enriquecatala ecatala@solidq.com enrique@enriquecatala.com MAD · NOV 24-25 · 2017
  • 3. Enrique Catalá Bañuls ▪ Ingeniero Informático ▪ Microsoft Data Platform MVP ▪ Mentor en SolidQ ▪ Tuning y alta disponibilidad ecatala@solidq.com www.solidq.com @enriquecatala www.enriquecatala.com ecatala@solidq.com | @enriquecatala
  • 4. SOLIDQ SUMMIT MADRID 2017 El tiempo computacional suele ser mas elevado, pero el tiempo efectivo suele ser menor ecatala@solidq.com | @enriquecatala
  • 5. SOLIDQ SUMMIT MADRID 2017ecatala@solidq.com | @enriquecatala
  • 6. SOLIDQ SUMMIT MADRID 2017 Symmetric Multiprocessing System (SMP) Todas las CPU comparten la misma memoria Sin particionado HW para acceso a memoria Típico en computadoras de consumo Memory CPU CPU CPU CPU System bus CPU CPU CPU CPU SMP architecture CPU CPU CPU CPU F S B Main Memory ecatala@solidq.com | @enriquecatala
  • 7. SOLIDQ SUMMIT MADRID 2017 Non-Uniform Memory Access Nodos conectados por bus compartido Típico en servidores de gama media-alta Shared Bus Memory Controller CPU CPU CPU CPU Memory Controller CPU CPU CPU CPU Memory Controller CPU CPU CPU CPU Memory Controller CPU CPU CPU CPU Node Controller Node Controller Node Controller Node Controller ecatala@solidq.com | @enriquecatala
  • 8. SOLIDQ SUMMIT MADRID 2017 Massively Parallel Processing Nodos de computación con SQL conectados Arquitecturas DW petabyte (PDW, Azure SQLDW) ecatala@solidq.com | @enriquecatala
  • 9. SOLIDQ SUMMIT MADRID 2017 SQLOS • Crea un scheduler para cada CPU lógica • Es como un gestor de recursos…OS • User-mode Scheduler • Como una CPU lógica usada por los workers Worker • Son como “threads” lógicos Task • Unidad de trabajo para un worker (sentencia simple) ecatala@solidq.com | @enriquecatala
  • 10. SOLIDQ SUMMIT MADRID 2017 Basada en prioridades de procesos p.ej: SQLCLR Competitiva Basada en listas de espera p.ej: T-SQL Cooperativa ecatala@solidq.com | @enriquecatala
  • 12. SOLIDQ SUMMIT MADRID 2017 Multi-Instancias Tener varias instancias en el mismo HW Licenciamiento Afinar qué cores queremos asignar de los licenciados ecatala@solidq.com | @enriquecatala
  • 13. SOLIDQ SUMMIT MADRID 2017 Auto afinado al inicio de instancia Hasta 30% beneficio CPU > 8 cores HT Se previenen mezclas logical-only o physical only nodes
  • 14. SOLIDQ SUMMIT MADRID 2017 8000 8001 8002 8003 ecatala@solidq.com | @enriquecatala
  • 15. SOLIDQ SUMMIT MADRID 2017 if(best_plan_for_now.cost<1) return(best_plan_for_now) else if( and best_plan.cost > threshold for parallelism) return(MIN(create_paralel_plan().cost, best_plan_for_now)) Configuración • A todos los niveles • Instancia, BBDD, conexión y query Finalidad • Limita explicitamente el nº de CPUs que un worker puede usar para una tarea Recomendación • En entorno OLTP recomendado 1 • Afinar agregaciones y op. mantenimiento a 0 ecatala@solidq.com | @enriquecatala
  • 16. SOLIDQ SUMMIT MADRID 2017 if(best_plan_for_now.cost<1) return(best_plan_for_now) else if(MAXDOP>0 and ) return( ) Configuración • A nivel de instancia • Sp_configure Finalidad • Cambiar estadísticamente el nº de planes de ejecución Recomendación • En entorno OLTP mínimo subir a 50 ecatala@solidq.com | @enriquecatala
  • 17. DEMO
  • 18. SOLIDQ SUMMIT MADRID 2017 Hardware NUMA SMP Instancia Soft-NUMA DOP Cost threshold for parallelism Max worker threads -P BBDD DOP Conexión Resource Governor Query ENABLE_PARALLEL_PLAN_PREFERENCE MAXDOP Limitaciones de implementacion Funciones CROSS APPLY … QUERY RESOURCE GOVERNOR BBDD INSTANCIA
  • 19. SOLIDQ SUMMIT MADRID 2017ecatala@solidq.com | @enriquecatala
  • 20. SOLIDQ SUMMIT MADRID 2017 Hash • Los valores de filas obtienen hash y cada hilo se responsabiliza de un rango hash Round-robin • Los valores de las filas se envían al siguiente hilo de la lista Broadcast • Todas las filas se envian a todos los hilos Range • Determina a que hilo enviar la fila evaluando una funcion de rango sobre una columna • Rara y usada en algunos parallel index recreation Demand • Se usa un modo pull en lugar de push como en las otras. • Envia la fila al thread que se la está pidiendo • Aparece en tablas particionadas
  • 21. SOLIDQ SUMMIT MADRID 2017 Consume múltiples fuentes y produce multiples fuentes No se modifican las filas Se reducen filas si aparece un operador bitmap ecatala@solidq.com | @enriquecatala
  • 22. SOLIDQ SUMMIT MADRID 2017 Consume múltiples hilos y produce un único hilo Combina resultados Es el que genera el famoso CXPACKET wait
  • 23. SOLIDQ SUMMIT MADRID 2017 Type # producer threads # consumer threads Gather Streams DOP 1 Repartition Streams DOP DOP Distribute Streams 1 DOP
  • 24. SOLIDQ SUMMIT MADRID 2017 Serial SerialParallel
  • 25. DEMO
  • 26. SOLIDQ SUMMIT MADRID 2017 Mala configuración DOP Mala configuración de affinidad de procesador Estadísticas desactualizadas • Generalmente problemas HW o mala configuración HW Cambios de context excesivos Malas arquitecturas de aplicación que estresan la CPU
  • 27. SOLIDQ SUMMIT MADRID 2017 • MAXDOP = 0 • Threshold for parallelism = 5 Nunca usar la configuración por defecto • MAXDOP = 1 • Threshold for parallelism = 50 OLTP puro • MAXDOP = #’Phisical cores’ DW • MAXDOP <= #physical_cores_numa_node Regla de oro wait type name wait time (ms) requests CXPACKET 786556034 128110444 LATCH_EX 255701441 155553913 ASYNC_NETWORK_IO 129888217 19083082 PAGEIOLATCH_SH 83672746 2813207 WRITELOG 70634742 48398646 SOS_SCHEDULER_YIELD 47697175 176871743
  • 28. SOLIDQ SUMMIT MADRID 2017 • ALTER INDEX, Statistics operations … • Agregaciones (AVG, MAX,…) • Recuerda que existe Resource Governor ¿Cuándo aplicar MAXDOP? • Recomendación = #physical_cores • Sistemas OLTP deberian configurarse a 1 • Siempre que veamos alto % de esperas CXPACKET ¿Cuándo aplicar “max degree of parallelism”? • Cuando quieras cambiar el nº de operaciones paralelas estadísticamente ¿Cuándo aplicar “cost threshold for parallelism?