SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
REL-311
Planes de ejecución I

Enrique Catalá Bañuls             Luis José Morán Cuenca
Mentor – Área relacional          DPA – Área relacional
MCT – MCITP – MCTS – MAP (2010)   LMoranCuenca@solidq.com
ecatala@solidq.com
Objetivos de la sesión
Agenda
α Principios Básicos
 β   Estadisticas, selectividad, densidad y cardinalidad
α Operadores Join:
 β   Loop Join
 β   Hash Join
 β   Merge Join
α Operadores básicos
 β Scan
  γ Table scan, index scan, clustered index scan, range scan
 β Seek
  γ Clustered index seek, index seek
 β Lookup
  γ RID, Key
 β Sort
Planes de ejecución
¿Qué es eso?




Sentencia SQL                    Plan de ejecución
                    Mágia




                Optimizador de
                  consultas
Operadores
¿Qué son?
α SQL Server posee unos 40 operadores lógicos y físicos
 β    Algunos muy comunes: nested loops o filter
 β    Otros menos comunes: Segment, Bitmap, Sequence…
α Todo operador funciona pidiendo filas de uno o mas hijos
     y devolviéndolas al que se las ha pedido
 β    Caso especial Common Table Spool (siguiente sesión)
α Cada operador devuelve de 1 fila en 1 fila
Estadísticas
Principios básicos
α Las estadísticas mantienen la información sobre la
  distribuición de los datos en una o más columnas
α Mantienen un histograma con un máximo de 200
  muestras de datos
α Los datos de las estadísticas son utilizados para escoger el
  mejor plan de ejecución
α Todos los índices contienen estatísticas
Estadísticas
DBCC SHOW_STATISTICS




Books Online – DBCC SHOW_STATISTICS
http://msdn.microsoft.com/es-es/library/ms174384.aspx
Frecuencia y Densidad
α Frecuencia
 β   Número medio de duplicados de cada valor en una tabla
α Densidad
 β   Densidad = 1/frecuencia
 β   Número de valores únicos de un conjunto de columnas
 β   Cuanto mayor es el número de la densidad, más densa es su
     columna, y más líneas duplicadas contendrá.




 1/0.0001 = 10.000 elementos únicos en col1
 1/0.00003 = ~33.334 elementos únicos (col1,col2)

SELECT (1.0 / COUNT(DISTINCT <Columna>)) FROM <Tabla>
Selectividad
Conceptos básicos
α La selectividad es el % de filas que se estiman cualificadas
  por el predicado y devueltas al usuario
α Su valor se basa en el histograma mencionado
  anteriormente
α Se usa para estimar el nº de filas que pasaran por cada
  operador (estimated number of rows)
     SELECT *
       FROM Clientes
      WHERE Sexo = ‘M’


     SELECT *
       FROM Clientes
      WHERE DNI = ‘12312312312’

     Que consulta es más selectiva?
Cardinalidad
Conceptos básicos
α Concepto que hay que tener claro
α Numero de elementos (filas) devueltos por un operador
α La cardinalidad de un operador viene definida como:
 β    (selectividad actual)*(cardinalidad del operador hijo)
 β    O lo que es lo mismo
     γ (% de filas que satisfacen el predicado) * (#filas del predecesor)
Resumen
α Densidad
 β    Medida de cuantos duplicados hay por columna
 β    Densidad = 1/frecuencia
     γ Alta densidad -> poco valor único
α Selectividad
 β Tambien es medida de unicidad
  γ Alta selectividad -> pocos valores
 β Se suele utilizar para representar predicados
α Cardinalidad
 β    Es el concepto clave que hay que entender y surge de todos los
      anteriores
 β    Número de filas devueltos por un operador
 β    Esto nos dará idea de por qué no va bien un plan de ejecucion
Scan
¿Qué son y para qué sirven?
α   Table Scan
α   Clustered Index Scan
α   Index Scan
α   Range Scan
α   Merge Interval
Table Scan (10 minutos)
Clustered Index Scan
Index Scan
Range Scan
Merge Interval
SARGs
¿Qué significa el término SARG?
α Clausulas que ayudan a limitar la cantidad de líneas que
  serán devueltas
α Conocidas como sargable u optimizable
α Ejemplos de cláusulas SARGs:
          WHERE   Nome = 'José'
          WHERE   Salario > 2500
          WHERE   2500 < Salario
          WHERE   Nome = 'José' AND Salario > 5000
          WHERE   Nome LIKE 'Fab%'

α Ejemplos de cláusulas NonSargables:
          WHERE   Nome LIKE ‘%Fab'
          WHERE   ABS(Preco) > 100
          WHERE   dbo.FnMask(Col) = ’10.330’
          WHERE   YEAR(Data) = 2011
Seek
¿Qué son y para qué sirven?
α Clustered Index Seek
α Index seek
Clustered index seek (5 m)
Index seek
Operadores Join
¿Qué son y como funcionan?

α Loop Join
α Merge Join
α Hash Join
Operadores Join
Nested Loop
αEs el operador mas sencillo
αEs un doble bucle


   Pseudo-código:
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
Operadores Join
Nested Loop

 SELECT
          CONVERT(VarChar, Alumnos.ID_Alumno) +'-'+ Alumnos.Nombre_Alumno,
          CONVERT(VarChar, Cursos.ID_Curso) +'-'+ Cursos.Nombre_Curso
 FROM
          Alumnos INNER JOIN Cursos WITH(INDEX=0) ON
                   Alumnos.ID_Curso = Cursos.ID_Curso
 OPTION (LOOP JOIN)
Operadores Join
  Nested Loop

     Tabla de Cursos:                               Tabla de Alumnos:
ID_Curso       Nombre_Curso                  ID_Alum Nombre_Aluno ID_Curso
        1 Paisajismo                                1 Luis               2
        2 Fotografía                                2 Ana                6
        3 Arte Clásico                              3 Juan               5
        4 Matemáticas                               4 Pepe               3
        5 Física                                    5 Carlos             4
        6 Química                                   6 Felipe             3
                                                    7 Iratxe             5
                                                    8 María              4

                                Resultado:
                    Nombre Alumno    |         Nombre Curso
               1-Luis                |2-Fotografía
               4-Pepe                |3-Arte Clásico
               6-Felipe              |3-Arte Clásico
               5-Carlos              |4-Matemáticas
               8-María               |4-Matemáticas
               ...
Operadores Join
Merge Join
αLee simultáneamente las dos entradas
αAmbas entradas deben estar ordenadas
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
}
Operadores Join
Merge Join

 SELECT
          CONVERT(VarChar, Alumnos.ID_Alumno) +'-'+ Alumnos.Nombre_Alumno,
          CONVERT(VarChar, Cursos.ID_Curso) +'-'+ Cursos.Nombre_Curso
 FROM
          Alumnos INNER JOIN Cursos WITH(INDEX=0) ON
                   Alumnos.ID_Curso = Cursos.ID_Curso
 OPTION (MERGE JOIN)
Operadores Join
  Merge Join
     Tabla de Cursos:                               Tabla de Alumnos:
ID_Curso       Nombre_Curso                   ID_Alum Nombre_Alumno ID_Curso
        1 Paisajismo                         ID_Alunos Luís
                                                      1 Nome_Aluno      s 2
        2 Fotografía                                  1 Luís
                                                      4 Pepe               2
                                                                           3
        3 Arte Clásico                                2 Ana
                                                      6 Felipe             6
                                                                           3
        4 Matemáticas                                 3 Juan
                                                      5 Carlos             5
                                                                           4
        5 Física                                      4 Pepe
                                                      8 María              3
                                                                           4
                                                      5 Carlos             4
        6 Química
                                                      6 Felipe             3
                                                      7 Iratxe             5
                                                      8 María              4

                                    Resultado:
                    Nombre Alumno       |         Nombre Curso
               1-Luis                   |2-Fotografía
               4-Pepe                   |3-Arte Clásico
               6-Felipe                 |3-Arte Clásico
               5-Carlos                 |4-Matemáticas
               8-María                  |4-Matemáticas
               ...
Operadores Join
Hash Join
αEjecución en dos fases
  β Build: Cálculo de clave hash del inner
  β Prueba: Lee la outer, crea su hash y compara con hash precalculado
    en fase build
αSi se estima menos memoria para hash, aparecen los
  temidos hash warnings…
  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)
  }
Operadores Join (30m)
Sort y lookup
¿Son buenos? ¿Se pueden eliminar?
α El operador Sort y sus peligros
α Lookups y sus peligros
Sort
Lookup
Recuerda…
Bookmark Key, RID Lookup




                           SQL Server 2000




                     SQL Server 2005 e 2008
Mejora interesante avisandonos del Sort 
Denali nos ayuda con los Sort
Sort warnings en planes de ejecución
Objetivos de la sesión
Agenda
α Principios Básicos
 β   Estadisticas, selectividad, densidad y cardinalidad
α Operadores Join:
 β   Loop Join
 β   Hash Join
 β   Merge Join
α Operadores básicos
 β Scan
  γ Table scan, index scan, clustered index scan, range scan
 β Seek
  γ Clustered index seek, index seek
 β Lookup
  γ RID, Key
 β Sort
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/

Weitere ähnliche Inhalte

Mehr von SolidQ

SQL Server 2017 en Linux
SQL Server 2017 en LinuxSQL Server 2017 en Linux
SQL Server 2017 en LinuxSolidQ
 
Columnstore en la vida real
Columnstore en la vida realColumnstore en la vida real
Columnstore en la vida realSolidQ
 
PowerApprízate
PowerApprízatePowerApprízate
PowerApprízateSolidQ
 
Jugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocksJugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocksSolidQ
 
Analizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BIAnalizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BISolidQ
 
Mantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesMantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesSolidQ
 
R en relacional
R en relacionalR en relacional
R en relacionalSolidQ
 
Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!SolidQ
 
Arquitecturas lambda en Azure
Arquitecturas lambda en AzureArquitecturas lambda en Azure
Arquitecturas lambda en AzureSolidQ
 
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018SolidQ
 
BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018SolidQ
 
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018SolidQ
 
Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018SolidQ
 
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...SolidQ
 
Novedades de SSAS 2017
Novedades de SSAS 2017Novedades de SSAS 2017
Novedades de SSAS 2017SolidQ
 
Afinando la Administración de SQL Server y Novedades de Administración 2016 -...
Afinando la Administración de SQL Server y Novedades de Administración 2016 -...Afinando la Administración de SQL Server y Novedades de Administración 2016 -...
Afinando la Administración de SQL Server y Novedades de Administración 2016 -...SolidQ
 
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...SolidQ
 
STOP a la fuga de información: la barrera indispensable de seguridad en SQL S...
STOP a la fuga de información: la barrera indispensable de seguridad en SQL S...STOP a la fuga de información: la barrera indispensable de seguridad en SQL S...
STOP a la fuga de información: la barrera indispensable de seguridad en SQL S...SolidQ
 
Power BI on premise Vs Power BI on Cloud - SolidQ Summit 2017
Power BI on premise Vs Power BI on Cloud - SolidQ Summit 2017Power BI on premise Vs Power BI on Cloud - SolidQ Summit 2017
Power BI on premise Vs Power BI on Cloud - SolidQ Summit 2017SolidQ
 
Real-time con Azure Stream Analytics - SolidQ Summit 2017
Real-time con Azure Stream Analytics - SolidQ Summit 2017Real-time con Azure Stream Analytics - SolidQ Summit 2017
Real-time con Azure Stream Analytics - SolidQ Summit 2017SolidQ
 

Mehr von SolidQ (20)

SQL Server 2017 en Linux
SQL Server 2017 en LinuxSQL Server 2017 en Linux
SQL Server 2017 en Linux
 
Columnstore en la vida real
Columnstore en la vida realColumnstore en la vida real
Columnstore en la vida real
 
PowerApprízate
PowerApprízatePowerApprízate
PowerApprízate
 
Jugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocksJugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocks
 
Analizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BIAnalizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BI
 
Mantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesMantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para Dummies
 
R en relacional
R en relacionalR en relacional
R en relacional
 
Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!
 
Arquitecturas lambda en Azure
Arquitecturas lambda en AzureArquitecturas lambda en Azure
Arquitecturas lambda en Azure
 
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
 
BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018
 
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
 
Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018
 
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
 
Novedades de SSAS 2017
Novedades de SSAS 2017Novedades de SSAS 2017
Novedades de SSAS 2017
 
Afinando la Administración de SQL Server y Novedades de Administración 2016 -...
Afinando la Administración de SQL Server y Novedades de Administración 2016 -...Afinando la Administración de SQL Server y Novedades de Administración 2016 -...
Afinando la Administración de SQL Server y Novedades de Administración 2016 -...
 
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...
 
STOP a la fuga de información: la barrera indispensable de seguridad en SQL S...
STOP a la fuga de información: la barrera indispensable de seguridad en SQL S...STOP a la fuga de información: la barrera indispensable de seguridad en SQL S...
STOP a la fuga de información: la barrera indispensable de seguridad en SQL S...
 
Power BI on premise Vs Power BI on Cloud - SolidQ Summit 2017
Power BI on premise Vs Power BI on Cloud - SolidQ Summit 2017Power BI on premise Vs Power BI on Cloud - SolidQ Summit 2017
Power BI on premise Vs Power BI on Cloud - SolidQ Summit 2017
 
Real-time con Azure Stream Analytics - SolidQ Summit 2017
Real-time con Azure Stream Analytics - SolidQ Summit 2017Real-time con Azure Stream Analytics - SolidQ Summit 2017
Real-time con Azure Stream Analytics - SolidQ Summit 2017
 

Kürzlich hochgeladen

Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxFernando Solis
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOluismii249
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdfMiNeyi1
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptAlberto Rubio
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.docRodneyFrankCUADROSMI
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024IES Vicent Andres Estelles
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIIsauraImbrondone
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptxRigoTito
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024IES Vicent Andres Estelles
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 

Kürzlich hochgeladen (20)

Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 

FUNDAMENTALS: Planes de ejecución I

  • 1. REL-311 Planes de ejecución I Enrique Catalá Bañuls Luis José Morán Cuenca Mentor – Área relacional DPA – Área relacional MCT – MCITP – MCTS – MAP (2010) LMoranCuenca@solidq.com ecatala@solidq.com
  • 2. Objetivos de la sesión Agenda α Principios Básicos β Estadisticas, selectividad, densidad y cardinalidad α Operadores Join: β Loop Join β Hash Join β Merge Join α Operadores básicos β Scan γ Table scan, index scan, clustered index scan, range scan β Seek γ Clustered index seek, index seek β Lookup γ RID, Key β Sort
  • 3. Planes de ejecución ¿Qué es eso? Sentencia SQL Plan de ejecución Mágia Optimizador de consultas
  • 4. Operadores ¿Qué son? α SQL Server posee unos 40 operadores lógicos y físicos β Algunos muy comunes: nested loops o filter β Otros menos comunes: Segment, Bitmap, Sequence… α Todo operador funciona pidiendo filas de uno o mas hijos y devolviéndolas al que se las ha pedido β Caso especial Common Table Spool (siguiente sesión) α Cada operador devuelve de 1 fila en 1 fila
  • 5. Estadísticas Principios básicos α Las estadísticas mantienen la información sobre la distribuición de los datos en una o más columnas α Mantienen un histograma con un máximo de 200 muestras de datos α Los datos de las estadísticas son utilizados para escoger el mejor plan de ejecución α Todos los índices contienen estatísticas
  • 6. Estadísticas DBCC SHOW_STATISTICS Books Online – DBCC SHOW_STATISTICS http://msdn.microsoft.com/es-es/library/ms174384.aspx
  • 7. Frecuencia y Densidad α Frecuencia β Número medio de duplicados de cada valor en una tabla α Densidad β Densidad = 1/frecuencia β Número de valores únicos de un conjunto de columnas β Cuanto mayor es el número de la densidad, más densa es su columna, y más líneas duplicadas contendrá. 1/0.0001 = 10.000 elementos únicos en col1 1/0.00003 = ~33.334 elementos únicos (col1,col2) SELECT (1.0 / COUNT(DISTINCT <Columna>)) FROM <Tabla>
  • 8. Selectividad Conceptos básicos α La selectividad es el % de filas que se estiman cualificadas por el predicado y devueltas al usuario α Su valor se basa en el histograma mencionado anteriormente α Se usa para estimar el nº de filas que pasaran por cada operador (estimated number of rows) SELECT * FROM Clientes WHERE Sexo = ‘M’ SELECT * FROM Clientes WHERE DNI = ‘12312312312’ Que consulta es más selectiva?
  • 9. Cardinalidad Conceptos básicos α Concepto que hay que tener claro α Numero de elementos (filas) devueltos por un operador α La cardinalidad de un operador viene definida como: β (selectividad actual)*(cardinalidad del operador hijo) β O lo que es lo mismo γ (% de filas que satisfacen el predicado) * (#filas del predecesor)
  • 10. Resumen α Densidad β Medida de cuantos duplicados hay por columna β Densidad = 1/frecuencia γ Alta densidad -> poco valor único α Selectividad β Tambien es medida de unicidad γ Alta selectividad -> pocos valores β Se suele utilizar para representar predicados α Cardinalidad β Es el concepto clave que hay que entender y surge de todos los anteriores β Número de filas devueltos por un operador β Esto nos dará idea de por qué no va bien un plan de ejecucion
  • 11. Scan ¿Qué son y para qué sirven? α Table Scan α Clustered Index Scan α Index Scan α Range Scan α Merge Interval
  • 12. Table Scan (10 minutos) Clustered Index Scan Index Scan Range Scan Merge Interval
  • 13. SARGs ¿Qué significa el término SARG? α Clausulas que ayudan a limitar la cantidad de líneas que serán devueltas α Conocidas como sargable u optimizable α Ejemplos de cláusulas SARGs: WHERE Nome = 'José' WHERE Salario > 2500 WHERE 2500 < Salario WHERE Nome = 'José' AND Salario > 5000 WHERE Nome LIKE 'Fab%' α Ejemplos de cláusulas NonSargables: WHERE Nome LIKE ‘%Fab' WHERE ABS(Preco) > 100 WHERE dbo.FnMask(Col) = ’10.330’ WHERE YEAR(Data) = 2011
  • 14. Seek ¿Qué son y para qué sirven? α Clustered Index Seek α Index seek
  • 15. Clustered index seek (5 m) Index seek
  • 16. Operadores Join ¿Qué son y como funcionan? α Loop Join α Merge Join α Hash Join
  • 17. Operadores Join Nested Loop αEs el operador mas sencillo αEs un doble bucle Pseudo-código: 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
  • 18. Operadores Join Nested Loop SELECT CONVERT(VarChar, Alumnos.ID_Alumno) +'-'+ Alumnos.Nombre_Alumno, CONVERT(VarChar, Cursos.ID_Curso) +'-'+ Cursos.Nombre_Curso FROM Alumnos INNER JOIN Cursos WITH(INDEX=0) ON Alumnos.ID_Curso = Cursos.ID_Curso OPTION (LOOP JOIN)
  • 19. Operadores Join Nested Loop Tabla de Cursos: Tabla de Alumnos: ID_Curso Nombre_Curso ID_Alum Nombre_Aluno ID_Curso 1 Paisajismo 1 Luis 2 2 Fotografía 2 Ana 6 3 Arte Clásico 3 Juan 5 4 Matemáticas 4 Pepe 3 5 Física 5 Carlos 4 6 Química 6 Felipe 3 7 Iratxe 5 8 María 4 Resultado: Nombre Alumno | Nombre Curso 1-Luis |2-Fotografía 4-Pepe |3-Arte Clásico 6-Felipe |3-Arte Clásico 5-Carlos |4-Matemáticas 8-María |4-Matemáticas ...
  • 20. Operadores Join Merge Join αLee simultáneamente las dos entradas αAmbas entradas deben estar ordenadas 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 }
  • 21. Operadores Join Merge Join SELECT CONVERT(VarChar, Alumnos.ID_Alumno) +'-'+ Alumnos.Nombre_Alumno, CONVERT(VarChar, Cursos.ID_Curso) +'-'+ Cursos.Nombre_Curso FROM Alumnos INNER JOIN Cursos WITH(INDEX=0) ON Alumnos.ID_Curso = Cursos.ID_Curso OPTION (MERGE JOIN)
  • 22. Operadores Join Merge Join Tabla de Cursos: Tabla de Alumnos: ID_Curso Nombre_Curso ID_Alum Nombre_Alumno ID_Curso 1 Paisajismo ID_Alunos Luís 1 Nome_Aluno s 2 2 Fotografía 1 Luís 4 Pepe 2 3 3 Arte Clásico 2 Ana 6 Felipe 6 3 4 Matemáticas 3 Juan 5 Carlos 5 4 5 Física 4 Pepe 8 María 3 4 5 Carlos 4 6 Química 6 Felipe 3 7 Iratxe 5 8 María 4 Resultado: Nombre Alumno | Nombre Curso 1-Luis |2-Fotografía 4-Pepe |3-Arte Clásico 6-Felipe |3-Arte Clásico 5-Carlos |4-Matemáticas 8-María |4-Matemáticas ...
  • 23. Operadores Join Hash Join αEjecución en dos fases β Build: Cálculo de clave hash del inner β Prueba: Lee la outer, crea su hash y compara con hash precalculado en fase build αSi se estima menos memoria para hash, aparecen los temidos hash warnings… 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) }
  • 25. Sort y lookup ¿Son buenos? ¿Se pueden eliminar? α El operador Sort y sus peligros α Lookups y sus peligros
  • 27. Recuerda… Bookmark Key, RID Lookup SQL Server 2000 SQL Server 2005 e 2008
  • 29. Denali nos ayuda con los Sort Sort warnings en planes de ejecución
  • 30. Objetivos de la sesión Agenda α Principios Básicos β Estadisticas, selectividad, densidad y cardinalidad α Operadores Join: β Loop Join β Hash Join β Merge Join α Operadores básicos β Scan γ Table scan, index scan, clustered index scan, range scan β Seek γ Clustered index seek, index seek β Lookup γ RID, Key β Sort
  • 31. 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/