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

10°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-810°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-8antoniopalmieriluna
 
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptxTarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptxVICTORMANUELBEASAGUI
 
herramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaherramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaJadeVilcscordova
 
Tipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosTipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosYOMIRAVILLARREAL1
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...axelv9257
 
Imágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónImágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónUniversidad de Sonora
 
el uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptxel uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptx221112876
 
Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024NicolleAndrade7
 
¡Ya basta! Sanidad Interior - Angela Kellenberger.pdf
¡Ya basta! Sanidad Interior - Angela Kellenberger.pdf¡Ya basta! Sanidad Interior - Angela Kellenberger.pdf
¡Ya basta! Sanidad Interior - Angela Kellenberger.pdfjuan23xpx
 
Función del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionFunción del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionEmanuelMuoz11
 
Introduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptxIntroduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptxcj12paz
 
NIA_300_PLANEACION_DE_UNA_AUDITORIA_DE_E.pptx
NIA_300_PLANEACION_DE_UNA_AUDITORIA_DE_E.pptxNIA_300_PLANEACION_DE_UNA_AUDITORIA_DE_E.pptx
NIA_300_PLANEACION_DE_UNA_AUDITORIA_DE_E.pptxDaniloDaz4
 
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxTipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxJOELGARCIA849853
 
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfRedes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfJosAndrRosarioVzquez
 
Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfYanitza28
 
Desarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaDesarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaRicardoEstrada90
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfaxelv9257
 
microsoft word manuales para todos tipos de estudiamte
microsoft word manuales para todos tipos de estudiamtemicrosoft word manuales para todos tipos de estudiamte
microsoft word manuales para todos tipos de estudiamte2024020140
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxgustavovasquezv56
 
Editorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfEditorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfYanitza28
 

Último (20)

10°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-810°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-8
 
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptxTarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
 
herramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaherramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el tema
 
Tipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosTipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de Datos
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...
 
Imágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónImágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la información
 
el uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptxel uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptx
 
Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024
 
¡Ya basta! Sanidad Interior - Angela Kellenberger.pdf
¡Ya basta! Sanidad Interior - Angela Kellenberger.pdf¡Ya basta! Sanidad Interior - Angela Kellenberger.pdf
¡Ya basta! Sanidad Interior - Angela Kellenberger.pdf
 
Función del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionFunción del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacion
 
Introduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptxIntroduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptx
 
NIA_300_PLANEACION_DE_UNA_AUDITORIA_DE_E.pptx
NIA_300_PLANEACION_DE_UNA_AUDITORIA_DE_E.pptxNIA_300_PLANEACION_DE_UNA_AUDITORIA_DE_E.pptx
NIA_300_PLANEACION_DE_UNA_AUDITORIA_DE_E.pptx
 
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxTipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
 
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfRedes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
 
Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdf
 
Desarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaDesarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - Estrada
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
 
microsoft word manuales para todos tipos de estudiamte
microsoft word manuales para todos tipos de estudiamtemicrosoft word manuales para todos tipos de estudiamte
microsoft word manuales para todos tipos de estudiamte
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
 
Editorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfEditorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdf
 

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