SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
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!!!

Contenu connexe

Tendances (7)

How to prepare for an interview
How to prepare for an interview How to prepare for an interview
How to prepare for an interview
 
How To Answer Interview Questions
How To Answer Interview QuestionsHow To Answer Interview Questions
How To Answer Interview Questions
 
Interview Ppt
Interview PptInterview Ppt
Interview Ppt
 
102773154 exercicios-de-fluxograma
102773154 exercicios-de-fluxograma102773154 exercicios-de-fluxograma
102773154 exercicios-de-fluxograma
 
Ket speaking part 1
Ket speaking part 1Ket speaking part 1
Ket speaking part 1
 
Презентация вебинара "Подготовка к IELTS"
Презентация вебинара "Подготовка к IELTS"Презентация вебинара "Подготовка к IELTS"
Презентация вебинара "Подготовка к IELTS"
 
Duolingo English Test Question Description
Duolingo English Test Question DescriptionDuolingo English Test Question Description
Duolingo English Test Question Description
 

Similaire à Paralelismo en SQL Server

Similaire à 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
 

Plus de Enrique Catala Bañuls

Plus 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
 

Dernier

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

Dernier (10)

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
 
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.
 
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
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
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 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
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
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
 
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
 

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?