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

Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptxolgakaterin
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 

Kürzlich hochgeladen (20)

Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptx
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 

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/