SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
REL30006

Como leer planes de ejecución
300
@enriquecatala

Enrique Catala Bañuls
ecatala@solidq.com

@SQSummit13

MCT – Microsoft Active Professional – Technical Ranger
COMUNICADO
EN CUMPLIMIENTO CON LA LEY 15/1999 DE PROTECCION DE DATOS DE
CARÁCTER PERSONAL, PONEMOS EN TU CONOCIMIENTO QUE

ESTA SESIÓN VA A SER GRABADA
POR SOLIDQ Y QUE ESTA GRABACIÓN PODRÍA SER UTILIZADA COMO MATERIAL
DE MARKETING Y HACERSE PUBLICA A TRAVÉS DE DIVERSOS MEDIOS, COMO
POR EJEMPLO NUESTRA PAGINA WEB.
TENIENDO EN CUENTA QUE TU IMAGEN PUEDE APARECER EN ESA GRABACIÓN,
SI NO DESEAS APARECER, ROGAMOS NOS LO COMUNIQUES POR LOS MEDIOS
QUE YA CONOCES.

2
Objetivos de la sesión
1. Familiarizarse con entorno SSMS para
extraer información de planes de
ejecución
2. Ser capaces de leer los planes de
ejecución
3. Conocer el funcionamiento de los
operadores mas importantes
3
Planes de ejecución
¿Sabemos interpretarlos?

Sentencia SQL

Mágia

Plan de ejecución

Optimizador de
consultas
4
Operadores
¿Cuántos y cuales son?

5
Operadores
Los básicos que debes conocer

SELECT

Sort

Clustered Index
Seek

Clustered Index
Scan

Non-clustered
index scan

Non-clustered
index seek

Table Scan

RID Lookup

Key Lookup

Hash Match

Nested Loops

Merge Join

Compute Scalar

Constant Scan

Spool

Bitmap

Eager Spool

Stream Aggregate

Distribute Streams

Gather Streams

Repartition
Streams

Split

Top

Filter

Lazy Spool

6
Operadores
¿Qué son?

SQL Server 2012 posee unos 166 operadores lógicos y físicos
Todo operador funciona pidiendo filas de uno o mas hijos y
devolviéndolas al que se las ha pedido
– Caso especial Common Table Spool

Cada operador devuelve de 1 fila en 1 fila
– *No todos

7
Operadores
¿Qué hacen por dentro?

Tipo Operador

Open()

GetNext()

Close()

Scan/Seek

• Abrir con al motor
relacional

• Pedir fila a tabla

• Cerrar conexión

Filter

• Abrir iterador hijo

• Llamar GetNext() del
hijo mientras no se
cumpla el filtro

• Cerrar conexión con
hijo

Sort

• Reservar espacio
worktable
• Abrir conexión a
operador hijo
• GetNext() a hijo
• Meter filas en
worktable
• Cerrar conexión a
hijo
• Ordenar contenidos
worktable

• Devolver filas del
worktable una vez
ordenadas

• Destruir worktable

Merge Join

• Abrir ambos
operadores hijo

• Llamar a GetNext del
input con el minimo
valor hasta que un
match se detecte,
devolviendo el match

• Cerrar ambos inputs

8
DEMO
Operadores básicos

9
Procesamiento lógico
De una consulta

1.
2.
3.
4.
5.

FROM
WHERE
GROUP BY
HAVING
SELECT

1. Evaluar expresiones
2. Eliminar duplicados

6. ORDER BY
7. OFFSET-FETCH/TOP

10
Planes de ejecución
Flechas

1.
2.

Analiza el grosor de las flechas
Compara los valores del plan estimado vs. el real

¿Ves la diferencia en el grosor de la flecha? 

Estimación un poco equivocada! 
11
Planes de ejecución
Comparar planes

Fíjate en los % de consulta

12
Operadores join
Nested loops

for each row R1 in the outer table
for each row R2 in the inner table
if R1 joins with R2
return (R1, R2)
*No confundir inner table con inner join ni
outer table com outer join

13
Tabla de Cursos:

Tabla de Alumnos:
ID_Alum Nombre_Aluno ID_Curso
1Luis
2
2Ana
6
3Juan
5
4Pepe
3
5Carlos
4
6Felipe
3
7Iratxe
5
8María
4

ID_Curso
Nombre_Curso
1Paisajismo
2Fotografía
3Arte Clásico
4Matemáticas
5Física
6Química

Resultado:
Nombre Alumno
1-Luis
4-Pepe
6-Felipe
5-Carlos
8-María
...

|
Nombre Curso
|2-Fotografía
|3-Arte Clásico
|3-Arte Clásico
|4-Matemáticas
|4-Matemáticas
Operadores join
Merge join
get first row R1 from input 1
get first row R2 from input 2
while not at the end of either input
{
if R1 joins with R2
{
return (R1, R2)
get next row R2 from input 2
}
else if R1 < R2
get next row R1 from input 1
else
get next row R2 from input 2
}

15
Operadores join
Merge join

Tabla de Cursos:
ID_Curso
Nombre_Curso
1Paisajismo
2Fotografía
3Arte Clásico
4Matemáticas
5Física
6Química

Tabla de Alumnos:
ID_Alum Nombre_Alumno ID_Curso
ID_Alunos Nome_Aluno
s 2
1Luís
1Luís
2
4Pepe
3
2Ana
6
6Felipe
3
3Juan
5
5Carlos
4
4Pepe
3
8María
4
5Carlos
4
6Felipe
3
7Iratxe
5
8María
4
Resultado:

Nombre Alumno
1-Luis
4-Pepe
6-Felipe
5-Carlos
8-María
...

|
Nombre Curso
|2-Fotografía
|3-Arte Clásico
|3-Arte Clásico
|4-Matemáticas
|4-Matemáticas
Operadores join
Hash join

Ejecución en dos fases

1. Build: Cálculo de clave hash del inner
2. Prueba: Lee la outer, crea su hash y compara con hash
precalculado en fase build
for each row R1 in the build table
{
calculate hash value on R1 join key(s)
insert R1 into the appropriate hash bucket
}
for each row R2 in the probe table
{
calculate hash value on R2 join key(s)
for each row R1 in the corresponding hash bucket
if R1 joins with R2
return (R1, R2)
}
17
DEMO
Leamos planes!

18
Operadores exchange
Repartition streams

•
•
•

Consume múltiples fuentes y produce multiples fuentes
No se modifican las filas
Se reducen filas si aparece un operador bitmap

21
Operadores join
Diferencias
Nested Loops:
–
–
–
–
–
–

Útiles para conjuntos pequeños de resultados.
Su eficiencia depende del producto de tabla inner (arriba) * tabla outer (abajo)
Puede escupir resultados inmediatamente
soporta cualquier tipo de join
Es el que más frecuentemente se encuentra
Es altamente ineficiente si los conjuntos de datos son grandes

–
–

Util para conjuntos relativamente medianos de resultados.
Es el mejor cuando hablamos de grandes valores de datos en tabla inner y outer porque su eficiencia
depende de la suma de filas de ambas tablas
Puede escupir resultados inmediatamente
Solo soporta equijoin
Los datos deben ser ordenados

Merge join:

–
–
–

Hash join:
–

–
–
–

Util para grandes conjuntos de resultados no ordenados y cuando la tabla que manda (inner) tiene
sustancialmente menos filas que la dependiente.
Hasta no estar todo calculado, no escupe resultados
Ineficiente si las dos tablas son muy grandes
Su existencia indica:

•
•
•
•
•

Falta un índice o el que existe no nos sirve
Falta WHERE
Alguna condicion no satisface al indice (en caso de haberlo) por culpa de algun calculo o algo...
Si la estimación de memoria inicial es mala…paginacion a disco!
Hash Warning Events - Profiler

26
Conclusiones
Objetivos de la sesión

1. Ya sabemos como obtener información
relevante
2. Podemos leer sin miedo planes de
ejecución
3. Conocemos el funcionamiento interno de
operadores comunes

27
¿Preguntas?

28
¡Gracias!
@enriquecatala

Enrique Catalá
Mentor

Siéntate a comer con nosotros o tómate un café y aclara tus
dudas 

29
Si quieres disfrutar de las mejores sesiones de
nuestros mentores de España y Latino América,
ésta es tu oportunidad.
http://summit.solidq.com/madrid/
Síguenos:

30

Más contenido relacionado

Destacado

Combinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablasCombinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablasclaudia contreras
 
Sql Consultas MáS Complejas
Sql Consultas MáS ComplejasSql Consultas MáS Complejas
Sql Consultas MáS Complejasalexmerono
 
Ajuste (tuning) del rendimiento de SQL Server 2008
Ajuste (tuning) del rendimiento de SQL Server 2008Ajuste (tuning) del rendimiento de SQL Server 2008
Ajuste (tuning) del rendimiento de SQL Server 2008Eduardo Castro
 
Subconsultas y consultas multitabla en bases de datos de sql server
Subconsultas y consultas multitabla en bases de datos de sql serverSubconsultas y consultas multitabla en bases de datos de sql server
Subconsultas y consultas multitabla en bases de datos de sql serverZairaDMM
 
24 HOP edición Español - Planes de ejecución en sql server 2014 - Enrique Catala
24 HOP edición Español - Planes de ejecución en sql server 2014 - Enrique Catala24 HOP edición Español - Planes de ejecución en sql server 2014 - Enrique Catala
24 HOP edición Español - Planes de ejecución en sql server 2014 - Enrique CatalaSpanishPASSVC
 
Indices columnares | SolidQ Summit 2012
Indices columnares | SolidQ Summit 2012Indices columnares | SolidQ Summit 2012
Indices columnares | SolidQ Summit 2012SolidQ
 
Creacion de indices y constraints en sql server
Creacion de indices y constraints en sql serverCreacion de indices y constraints en sql server
Creacion de indices y constraints en sql serverZeleneMorita
 
SQL Saturday 254 10- Cosas que no se deben de hacer en una BD
SQL Saturday 254   10- Cosas que no se deben de hacer en una BDSQL Saturday 254   10- Cosas que no se deben de hacer en una BD
SQL Saturday 254 10- Cosas que no se deben de hacer en una BDAdrian Miranda
 
Novedades en seguridad en SQL Server 2012 v1 | SolidQ Summit 2012
Novedades en seguridad en SQL Server 2012 v1 | SolidQ Summit 2012Novedades en seguridad en SQL Server 2012 v1 | SolidQ Summit 2012
Novedades en seguridad en SQL Server 2012 v1 | SolidQ Summit 2012SolidQ
 
Escribiendo código T-SQL eficientemente
Escribiendo código T-SQL eficientementeEscribiendo código T-SQL eficientemente
Escribiendo código T-SQL eficientementeJoseph Lopez
 
Creación de aplicaciones de bases de datos con MS SQL Server 2012
Creación de aplicaciones de bases de datos con MS SQL Server 2012Creación de aplicaciones de bases de datos con MS SQL Server 2012
Creación de aplicaciones de bases de datos con MS SQL Server 2012Joseph Lopez
 
Diplomado Técnico SQL Server 2012 - Sesión 6/8
Diplomado Técnico SQL Server 2012 - Sesión 6/8Diplomado Técnico SQL Server 2012 - Sesión 6/8
Diplomado Técnico SQL Server 2012 - Sesión 6/8John Bulla
 
Toolbox SQL Server para optimización
Toolbox SQL Server para optimizaciónToolbox SQL Server para optimización
Toolbox SQL Server para optimizaciónSolidQ
 
BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos
BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos
BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos SolidQ
 
Planes de ejecución 1
Planes de ejecución 1Planes de ejecución 1
Planes de ejecución 1SolidQ
 
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...SolidQ
 
Diseño de aplicaciones de bases de datos empresariales robustas con MS SQL Se...
Diseño de aplicaciones de bases de datos empresariales robustas con MS SQL Se...Diseño de aplicaciones de bases de datos empresariales robustas con MS SQL Se...
Diseño de aplicaciones de bases de datos empresariales robustas con MS SQL Se...Joseph Lopez
 
WebCast de optimización Sql Server - Almacenamiento e Índices
WebCast de optimización Sql Server - Almacenamiento e ÍndicesWebCast de optimización Sql Server - Almacenamiento e Índices
WebCast de optimización Sql Server - Almacenamiento e ÍndicesJOSE AHIAS LOPEZ PORTILLO
 
MS SQL Server 2012 SP1 para desarrolladores
MS SQL Server 2012 SP1 para desarrolladoresMS SQL Server 2012 SP1 para desarrolladores
MS SQL Server 2012 SP1 para desarrolladoresJoseph Lopez
 
Novedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladoresNovedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladoresEnrique Catala Bañuls
 

Destacado (20)

Combinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablasCombinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablas
 
Sql Consultas MáS Complejas
Sql Consultas MáS ComplejasSql Consultas MáS Complejas
Sql Consultas MáS Complejas
 
Ajuste (tuning) del rendimiento de SQL Server 2008
Ajuste (tuning) del rendimiento de SQL Server 2008Ajuste (tuning) del rendimiento de SQL Server 2008
Ajuste (tuning) del rendimiento de SQL Server 2008
 
Subconsultas y consultas multitabla en bases de datos de sql server
Subconsultas y consultas multitabla en bases de datos de sql serverSubconsultas y consultas multitabla en bases de datos de sql server
Subconsultas y consultas multitabla en bases de datos de sql server
 
24 HOP edición Español - Planes de ejecución en sql server 2014 - Enrique Catala
24 HOP edición Español - Planes de ejecución en sql server 2014 - Enrique Catala24 HOP edición Español - Planes de ejecución en sql server 2014 - Enrique Catala
24 HOP edición Español - Planes de ejecución en sql server 2014 - Enrique Catala
 
Indices columnares | SolidQ Summit 2012
Indices columnares | SolidQ Summit 2012Indices columnares | SolidQ Summit 2012
Indices columnares | SolidQ Summit 2012
 
Creacion de indices y constraints en sql server
Creacion de indices y constraints en sql serverCreacion de indices y constraints en sql server
Creacion de indices y constraints en sql server
 
SQL Saturday 254 10- Cosas que no se deben de hacer en una BD
SQL Saturday 254   10- Cosas que no se deben de hacer en una BDSQL Saturday 254   10- Cosas que no se deben de hacer en una BD
SQL Saturday 254 10- Cosas que no se deben de hacer en una BD
 
Novedades en seguridad en SQL Server 2012 v1 | SolidQ Summit 2012
Novedades en seguridad en SQL Server 2012 v1 | SolidQ Summit 2012Novedades en seguridad en SQL Server 2012 v1 | SolidQ Summit 2012
Novedades en seguridad en SQL Server 2012 v1 | SolidQ Summit 2012
 
Escribiendo código T-SQL eficientemente
Escribiendo código T-SQL eficientementeEscribiendo código T-SQL eficientemente
Escribiendo código T-SQL eficientemente
 
Creación de aplicaciones de bases de datos con MS SQL Server 2012
Creación de aplicaciones de bases de datos con MS SQL Server 2012Creación de aplicaciones de bases de datos con MS SQL Server 2012
Creación de aplicaciones de bases de datos con MS SQL Server 2012
 
Diplomado Técnico SQL Server 2012 - Sesión 6/8
Diplomado Técnico SQL Server 2012 - Sesión 6/8Diplomado Técnico SQL Server 2012 - Sesión 6/8
Diplomado Técnico SQL Server 2012 - Sesión 6/8
 
Toolbox SQL Server para optimización
Toolbox SQL Server para optimizaciónToolbox SQL Server para optimización
Toolbox SQL Server para optimización
 
BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos
BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos
BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos
 
Planes de ejecución 1
Planes de ejecución 1Planes de ejecución 1
Planes de ejecución 1
 
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
 
Diseño de aplicaciones de bases de datos empresariales robustas con MS SQL Se...
Diseño de aplicaciones de bases de datos empresariales robustas con MS SQL Se...Diseño de aplicaciones de bases de datos empresariales robustas con MS SQL Se...
Diseño de aplicaciones de bases de datos empresariales robustas con MS SQL Se...
 
WebCast de optimización Sql Server - Almacenamiento e Índices
WebCast de optimización Sql Server - Almacenamiento e ÍndicesWebCast de optimización Sql Server - Almacenamiento e Índices
WebCast de optimización Sql Server - Almacenamiento e Índices
 
MS SQL Server 2012 SP1 para desarrolladores
MS SQL Server 2012 SP1 para desarrolladoresMS SQL Server 2012 SP1 para desarrolladores
MS SQL Server 2012 SP1 para desarrolladores
 
Novedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladoresNovedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladores
 

Similar a Como leer planes de ejecución

Como leer planes de ejecución
Como leer planes de ejecuciónComo leer planes de ejecución
Como leer planes de ejecuciónSpanishPASSVC
 
Tema 4 -_introduccion_a_razonamiento_algoritmico
Tema 4 -_introduccion_a_razonamiento_algoritmicoTema 4 -_introduccion_a_razonamiento_algoritmico
Tema 4 -_introduccion_a_razonamiento_algoritmicoLincoln School
 
Afinamientodebasesdedatosyservidoreswebs
AfinamientodebasesdedatosyservidoreswebsAfinamientodebasesdedatosyservidoreswebs
Afinamientodebasesdedatosyservidoreswebsricardosusa5
 
Copiade documento(2)
Copiade documento(2)Copiade documento(2)
Copiade documento(2)Pato Brito
 
Segundo blog arquitectura de hardware tercer corte
Segundo blog arquitectura de hardware tercer corteSegundo blog arquitectura de hardware tercer corte
Segundo blog arquitectura de hardware tercer corteSebastian Gonzalez
 
Trabajo de plantilla actualizado very actualizado
Trabajo de plantilla actualizado very actualizadoTrabajo de plantilla actualizado very actualizado
Trabajo de plantilla actualizado very actualizadojuanjo1412
 
Trabajo de plantilla actualizado very actualizado
Trabajo de plantilla actualizado very actualizadoTrabajo de plantilla actualizado very actualizado
Trabajo de plantilla actualizado very actualizadojuanjo1412
 
Optimizacion De Consultas
Optimizacion De ConsultasOptimizacion De Consultas
Optimizacion De ConsultasOto Tumax
 
Algoritmos y clase
Algoritmos y claseAlgoritmos y clase
Algoritmos y clasedaosma
 
Manual 2016 01 software para los negocios (2258) (1)
Manual 2016 01 software para los negocios (2258) (1)Manual 2016 01 software para los negocios (2258) (1)
Manual 2016 01 software para los negocios (2258) (1)Juan Victor Chipana Bramon
 
Algoritmos Y Programas Unidad1
Algoritmos Y  Programas Unidad1Algoritmos Y  Programas Unidad1
Algoritmos Y Programas Unidad1Silvanac
 
slides-del-curso-de-analisis-de-datos-con-power-bi_cf66119b-6f4c-4e91-9eab-72...
slides-del-curso-de-analisis-de-datos-con-power-bi_cf66119b-6f4c-4e91-9eab-72...slides-del-curso-de-analisis-de-datos-con-power-bi_cf66119b-6f4c-4e91-9eab-72...
slides-del-curso-de-analisis-de-datos-con-power-bi_cf66119b-6f4c-4e91-9eab-72...SALAZARCOLLASABELANG
 

Similar a Como leer planes de ejecución (20)

Como leer planes de ejecución
Como leer planes de ejecuciónComo leer planes de ejecución
Como leer planes de ejecución
 
Pres17BDII.ppt
Pres17BDII.pptPres17BDII.ppt
Pres17BDII.ppt
 
Tema 4 -_introduccion_a_razonamiento_algoritmico
Tema 4 -_introduccion_a_razonamiento_algoritmicoTema 4 -_introduccion_a_razonamiento_algoritmico
Tema 4 -_introduccion_a_razonamiento_algoritmico
 
Afinamientodebasesdedatosyservidoreswebs
AfinamientodebasesdedatosyservidoreswebsAfinamientodebasesdedatosyservidoreswebs
Afinamientodebasesdedatosyservidoreswebs
 
Lenguaje Transact sql
Lenguaje Transact sqlLenguaje Transact sql
Lenguaje Transact sql
 
01 alp u3
01 alp u301 alp u3
01 alp u3
 
Copiade documento(2)
Copiade documento(2)Copiade documento(2)
Copiade documento(2)
 
Segundo blog arquitectura de hardware tercer corte
Segundo blog arquitectura de hardware tercer corteSegundo blog arquitectura de hardware tercer corte
Segundo blog arquitectura de hardware tercer corte
 
Computación II
Computación  IIComputación  II
Computación II
 
Trabajo de plantilla actualizado very actualizado
Trabajo de plantilla actualizado very actualizadoTrabajo de plantilla actualizado very actualizado
Trabajo de plantilla actualizado very actualizado
 
Trabajo de plantilla actualizado very actualizado
Trabajo de plantilla actualizado very actualizadoTrabajo de plantilla actualizado very actualizado
Trabajo de plantilla actualizado very actualizado
 
Optimizacion De Consultas
Optimizacion De ConsultasOptimizacion De Consultas
Optimizacion De Consultas
 
Algoritmos y clase
Algoritmos y claseAlgoritmos y clase
Algoritmos y clase
 
Normas y contec sakaters (1)
Normas y contec  sakaters (1)Normas y contec  sakaters (1)
Normas y contec sakaters (1)
 
Manual 2016 01 software para los negocios (2258) (1)
Manual 2016 01 software para los negocios (2258) (1)Manual 2016 01 software para los negocios (2258) (1)
Manual 2016 01 software para los negocios (2258) (1)
 
Computacion ii cap i
Computacion ii cap iComputacion ii cap i
Computacion ii cap i
 
computacion
computacioncomputacion
computacion
 
Algoritmos Y Programas Unidad1
Algoritmos Y  Programas Unidad1Algoritmos Y  Programas Unidad1
Algoritmos Y Programas Unidad1
 
MATLAB Tutorial
MATLAB TutorialMATLAB Tutorial
MATLAB Tutorial
 
slides-del-curso-de-analisis-de-datos-con-power-bi_cf66119b-6f4c-4e91-9eab-72...
slides-del-curso-de-analisis-de-datos-con-power-bi_cf66119b-6f4c-4e91-9eab-72...slides-del-curso-de-analisis-de-datos-con-power-bi_cf66119b-6f4c-4e91-9eab-72...
slides-del-curso-de-analisis-de-datos-con-power-bi_cf66119b-6f4c-4e91-9eab-72...
 

Más 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
 
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
 
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
 
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
 
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
 
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
 
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
 

Más 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
 
Paralelismo en SQL Server
Paralelismo en SQL ServerParalelismo en SQL Server
Paralelismo en 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
 
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
 
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 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
 
Paralelismo en sql server
Paralelismo en sql serverParalelismo en sql server
Paralelismo en 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
 
Query store
Query storeQuery store
Query store
 
Planes de ejecucion 2016
Planes de ejecucion 2016Planes de ejecucion 2016
Planes de ejecucion 2016
 
Sql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladoresSql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladores
 
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
 
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)
 
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
 

Último

Análisis de Artefactos Tecnologicos .docx
Análisis de Artefactos Tecnologicos .docxAnálisis de Artefactos Tecnologicos .docx
Análisis de Artefactos Tecnologicos .docxmajovaru19
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nóminacuellosameidy
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxCarolina Bujaico
 
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdftecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdflauralizcano0319
 
LISTA taller tecnología Sofia nava 11-2 año 2024
LISTA taller tecnología Sofia nava 11-2 año 2024LISTA taller tecnología Sofia nava 11-2 año 2024
LISTA taller tecnología Sofia nava 11-2 año 2024SofaNava1
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
base de datos para tecnología de sara Garzón
base de datos para tecnología de sara Garzónbase de datos para tecnología de sara Garzón
base de datos para tecnología de sara GarzónSaraGarzon13
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaYeimys Ch
 
Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024anasofiarodriguezcru
 
tecnologia11-6 Juan Sebastián Gonzalez liceo
tecnologia11-6 Juan Sebastián Gonzalez liceotecnologia11-6 Juan Sebastián Gonzalez liceo
tecnologia11-6 Juan Sebastián Gonzalez liceoSebastinOrdez4
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
Taller de tecnología año 2024 11-2 sofia nava
Taller de tecnología año 2024  11-2 sofia navaTaller de tecnología año 2024  11-2 sofia nava
Taller de tecnología año 2024 11-2 sofia navaSofaNava1
 
.Informe electricidad y electronica.docx
.Informe electricidad y electronica.docx.Informe electricidad y electronica.docx
.Informe electricidad y electronica.docxCamila Ortiz
 
carta combinada para tecnología de sara Garzón
carta combinada para tecnología de sara Garzóncarta combinada para tecnología de sara Garzón
carta combinada para tecnología de sara GarzónSaraGarzon13
 
Tecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestríaTecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestríaElizabethLpezSoto
 
LA ELECTRICIDAD Y LA ELECTRÓNICA TRABAJO EN GRUPO
LA ELECTRICIDAD Y LA ELECTRÓNICA TRABAJO EN GRUPOLA ELECTRICIDAD Y LA ELECTRÓNICA TRABAJO EN GRUPO
LA ELECTRICIDAD Y LA ELECTRÓNICA TRABAJO EN GRUPOv16959670
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
TRABAJO TECNOLOGÍA E INFORMATICA TABLAAA
TRABAJO TECNOLOGÍA E INFORMATICA TABLAAATRABAJO TECNOLOGÍA E INFORMATICA TABLAAA
TRABAJO TECNOLOGÍA E INFORMATICA TABLAAASebastinOrdez4
 
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskTrabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskbydaniela5
 
TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888ElianaValencia28
 

Último (20)

Análisis de Artefactos Tecnologicos .docx
Análisis de Artefactos Tecnologicos .docxAnálisis de Artefactos Tecnologicos .docx
Análisis de Artefactos Tecnologicos .docx
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nómina
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptx
 
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdftecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
 
LISTA taller tecnología Sofia nava 11-2 año 2024
LISTA taller tecnología Sofia nava 11-2 año 2024LISTA taller tecnología Sofia nava 11-2 año 2024
LISTA taller tecnología Sofia nava 11-2 año 2024
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
base de datos para tecnología de sara Garzón
base de datos para tecnología de sara Garzónbase de datos para tecnología de sara Garzón
base de datos para tecnología de sara Garzón
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
 
Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024
 
tecnologia11-6 Juan Sebastián Gonzalez liceo
tecnologia11-6 Juan Sebastián Gonzalez liceotecnologia11-6 Juan Sebastián Gonzalez liceo
tecnologia11-6 Juan Sebastián Gonzalez liceo
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
Taller de tecnología año 2024 11-2 sofia nava
Taller de tecnología año 2024  11-2 sofia navaTaller de tecnología año 2024  11-2 sofia nava
Taller de tecnología año 2024 11-2 sofia nava
 
.Informe electricidad y electronica.docx
.Informe electricidad y electronica.docx.Informe electricidad y electronica.docx
.Informe electricidad y electronica.docx
 
carta combinada para tecnología de sara Garzón
carta combinada para tecnología de sara Garzóncarta combinada para tecnología de sara Garzón
carta combinada para tecnología de sara Garzón
 
Tecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestríaTecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestría
 
LA ELECTRICIDAD Y LA ELECTRÓNICA TRABAJO EN GRUPO
LA ELECTRICIDAD Y LA ELECTRÓNICA TRABAJO EN GRUPOLA ELECTRICIDAD Y LA ELECTRÓNICA TRABAJO EN GRUPO
LA ELECTRICIDAD Y LA ELECTRÓNICA TRABAJO EN GRUPO
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
TRABAJO TECNOLOGÍA E INFORMATICA TABLAAA
TRABAJO TECNOLOGÍA E INFORMATICA TABLAAATRABAJO TECNOLOGÍA E INFORMATICA TABLAAA
TRABAJO TECNOLOGÍA E INFORMATICA TABLAAA
 
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskTrabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
 
TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888
 

Como leer planes de ejecución

  • 1. REL30006 Como leer planes de ejecución 300 @enriquecatala Enrique Catala Bañuls ecatala@solidq.com @SQSummit13 MCT – Microsoft Active Professional – Technical Ranger
  • 2. COMUNICADO EN CUMPLIMIENTO CON LA LEY 15/1999 DE PROTECCION DE DATOS DE CARÁCTER PERSONAL, PONEMOS EN TU CONOCIMIENTO QUE ESTA SESIÓN VA A SER GRABADA POR SOLIDQ Y QUE ESTA GRABACIÓN PODRÍA SER UTILIZADA COMO MATERIAL DE MARKETING Y HACERSE PUBLICA A TRAVÉS DE DIVERSOS MEDIOS, COMO POR EJEMPLO NUESTRA PAGINA WEB. TENIENDO EN CUENTA QUE TU IMAGEN PUEDE APARECER EN ESA GRABACIÓN, SI NO DESEAS APARECER, ROGAMOS NOS LO COMUNIQUES POR LOS MEDIOS QUE YA CONOCES. 2
  • 3. Objetivos de la sesión 1. Familiarizarse con entorno SSMS para extraer información de planes de ejecución 2. Ser capaces de leer los planes de ejecución 3. Conocer el funcionamiento de los operadores mas importantes 3
  • 4. Planes de ejecución ¿Sabemos interpretarlos? Sentencia SQL Mágia Plan de ejecución Optimizador de consultas 4
  • 6. Operadores Los básicos que debes conocer SELECT Sort Clustered Index Seek Clustered Index Scan Non-clustered index scan Non-clustered index seek Table Scan RID Lookup Key Lookup Hash Match Nested Loops Merge Join Compute Scalar Constant Scan Spool Bitmap Eager Spool Stream Aggregate Distribute Streams Gather Streams Repartition Streams Split Top Filter Lazy Spool 6
  • 7. Operadores ¿Qué son? SQL Server 2012 posee unos 166 operadores lógicos y físicos Todo operador funciona pidiendo filas de uno o mas hijos y devolviéndolas al que se las ha pedido – Caso especial Common Table Spool Cada operador devuelve de 1 fila en 1 fila – *No todos 7
  • 8. Operadores ¿Qué hacen por dentro? Tipo Operador Open() GetNext() Close() Scan/Seek • Abrir con al motor relacional • Pedir fila a tabla • Cerrar conexión Filter • Abrir iterador hijo • Llamar GetNext() del hijo mientras no se cumpla el filtro • Cerrar conexión con hijo Sort • Reservar espacio worktable • Abrir conexión a operador hijo • GetNext() a hijo • Meter filas en worktable • Cerrar conexión a hijo • Ordenar contenidos worktable • Devolver filas del worktable una vez ordenadas • Destruir worktable Merge Join • Abrir ambos operadores hijo • Llamar a GetNext del input con el minimo valor hasta que un match se detecte, devolviendo el match • Cerrar ambos inputs 8
  • 10. Procesamiento lógico De una consulta 1. 2. 3. 4. 5. FROM WHERE GROUP BY HAVING SELECT 1. Evaluar expresiones 2. Eliminar duplicados 6. ORDER BY 7. OFFSET-FETCH/TOP 10
  • 11. Planes de ejecución Flechas 1. 2. Analiza el grosor de las flechas Compara los valores del plan estimado vs. el real ¿Ves la diferencia en el grosor de la flecha?  Estimación un poco equivocada!  11
  • 12. Planes de ejecución Comparar planes Fíjate en los % de consulta 12
  • 13. Operadores join Nested loops for each row R1 in the outer table for each row R2 in the inner table if R1 joins with R2 return (R1, R2) *No confundir inner table con inner join ni outer table com outer join 13
  • 14. Tabla de Cursos: Tabla de Alumnos: ID_Alum Nombre_Aluno ID_Curso 1Luis 2 2Ana 6 3Juan 5 4Pepe 3 5Carlos 4 6Felipe 3 7Iratxe 5 8María 4 ID_Curso Nombre_Curso 1Paisajismo 2Fotografía 3Arte Clásico 4Matemáticas 5Física 6Química Resultado: Nombre Alumno 1-Luis 4-Pepe 6-Felipe 5-Carlos 8-María ... | Nombre Curso |2-Fotografía |3-Arte Clásico |3-Arte Clásico |4-Matemáticas |4-Matemáticas
  • 15. Operadores join Merge join get first row R1 from input 1 get first row R2 from input 2 while not at the end of either input { if R1 joins with R2 { return (R1, R2) get next row R2 from input 2 } else if R1 < R2 get next row R1 from input 1 else get next row R2 from input 2 } 15
  • 16. Operadores join Merge join Tabla de Cursos: ID_Curso Nombre_Curso 1Paisajismo 2Fotografía 3Arte Clásico 4Matemáticas 5Física 6Química Tabla de Alumnos: ID_Alum Nombre_Alumno ID_Curso ID_Alunos Nome_Aluno s 2 1Luís 1Luís 2 4Pepe 3 2Ana 6 6Felipe 3 3Juan 5 5Carlos 4 4Pepe 3 8María 4 5Carlos 4 6Felipe 3 7Iratxe 5 8María 4 Resultado: Nombre Alumno 1-Luis 4-Pepe 6-Felipe 5-Carlos 8-María ... | Nombre Curso |2-Fotografía |3-Arte Clásico |3-Arte Clásico |4-Matemáticas |4-Matemáticas
  • 17. Operadores join Hash join Ejecución en dos fases 1. Build: Cálculo de clave hash del inner 2. Prueba: Lee la outer, crea su hash y compara con hash precalculado en fase build for each row R1 in the build table { calculate hash value on R1 join key(s) insert R1 into the appropriate hash bucket } for each row R2 in the probe table { calculate hash value on R2 join key(s) for each row R1 in the corresponding hash bucket if R1 joins with R2 return (R1, R2) } 17
  • 19. Operadores exchange Repartition streams • • • Consume múltiples fuentes y produce multiples fuentes No se modifican las filas Se reducen filas si aparece un operador bitmap 21
  • 20. Operadores join Diferencias Nested Loops: – – – – – – Útiles para conjuntos pequeños de resultados. Su eficiencia depende del producto de tabla inner (arriba) * tabla outer (abajo) Puede escupir resultados inmediatamente soporta cualquier tipo de join Es el que más frecuentemente se encuentra Es altamente ineficiente si los conjuntos de datos son grandes – – Util para conjuntos relativamente medianos de resultados. Es el mejor cuando hablamos de grandes valores de datos en tabla inner y outer porque su eficiencia depende de la suma de filas de ambas tablas Puede escupir resultados inmediatamente Solo soporta equijoin Los datos deben ser ordenados Merge join: – – – Hash join: – – – – Util para grandes conjuntos de resultados no ordenados y cuando la tabla que manda (inner) tiene sustancialmente menos filas que la dependiente. Hasta no estar todo calculado, no escupe resultados Ineficiente si las dos tablas son muy grandes Su existencia indica: • • • • • Falta un índice o el que existe no nos sirve Falta WHERE Alguna condicion no satisface al indice (en caso de haberlo) por culpa de algun calculo o algo... Si la estimación de memoria inicial es mala…paginacion a disco! Hash Warning Events - Profiler 26
  • 21. Conclusiones Objetivos de la sesión 1. Ya sabemos como obtener información relevante 2. Podemos leer sin miedo planes de ejecución 3. Conocemos el funcionamiento interno de operadores comunes 27
  • 23. ¡Gracias! @enriquecatala Enrique Catalá Mentor Siéntate a comer con nosotros o tómate un café y aclara tus dudas  29
  • 24. Si quieres disfrutar de las mejores sesiones de nuestros mentores de España y Latino América, ésta es tu oportunidad. http://summit.solidq.com/madrid/ Síguenos: 30

Notas del editor

  1. Son unos 166 en SQL Server 2012 y su lista para 2012 aquí: http://msdn.microsoft.com/en-us/library/ms191158(v=sql.110).aspx No toda operación tiene representación.Los operadores paralelos poseen una variante con doble flecha en la parte inferior izquierda
  2. 5’Los dibujitos son bastante explicativos
  3. Los operadores de tipo índice columnar y los de tipo Exchange paralelos, que funcionan enviando paquetes de filas
  4. 10’Obviamente dependen del operador
  5. Aprovechar para planes de ejecución actuales vs estimados15’
  6. Esto es importantísimo para entender los planes de ejecución
  7. Minuto 30’
  8. Es el operador mas sencilloEs un doble bucle
  9. Lee simultáneamente las dos entradasAmbas entradas deben estar ordenadas
  10. 37’Si se estima menos memoria para hash, aparecen los temidos hash warnings…
  11. NestedLoops: Útiles para conjuntos pequeños de resultados. Su eficiencia depende del producto de tabla inner (arriba) * tabla outer (abajo)Puede escupir resultados inmediatamentesoporta cualquier tipo de joinEs el que más frecuentemente se encuentraEs altamente ineficiente si los conjuntos de datos son grandesMergejoin: Util para conjuntos relativamente medianos de resultados. Es el mejor cuando hablamos de grandes valores de datos en tabla inner y outer porque su eficiencia depende de la suma de filas de ambas tablasPuede escupir resultados inmediatamenteSolo soporta equijoinLos datos deben ser ordenados &quot;the inputs tothemergejoinmust be sortedonthejoinkeys.  Forexample, ifwehave a joinpredicate “T1.a = T2.b,” table T1 must be sortedon T1.a and table T2 must be sortedon T2.b&quot;Hash join: Util para grandes conjuntos de resultados no ordenados y cuando la tabla que manda (inner) tiene sustancialmente menos filas que la dependiente.Hasta no estar todo calculado, no escupe resultadosIneficiente si las dos tablas son muy grandesSu existencia indica:Falta un índice o el que existe no nos sirveFalta WHEREAlguna condicion no satisface al indice (en caso de haberlo) por culpa de algun calculo o algo...Si la estimación de memoria inicial es mala…paginacion a disco!Hash Warning Events - Profiler
  12. Scan, seek, sort, lookupSortwarnings