Análisis de consultas. Introducción Consultas que utilizan el operador AND Consultas que utilizan el operador OR Consultas que utilizan operaciones de

  • Published on
    11-Jan-2015

  • View
    1

  • Download
    1

Embed Size (px)

Transcript

<ul><li> Diapositiva 1 </li> <li> Anlisis de consultas </li> <li> Diapositiva 2 </li> <li> Introduccin Consultas que utilizan el operador AND Consultas que utilizan el operador OR Consultas que utilizan operaciones de combinacin </li> <li> Diapositiva 3 </li> <li> Consultas que utilizan el operador AND Procesamiento del operador AND Devuelve las filas que cumplen todas las condiciones de cada criterio especificado en la clusula WHERE Limita de forma progresiva el nmero de filas devueltas con cada condicin de bsqueda adicional Puede utilizar un ndice por cada condicin de bsqueda de la clusula WHERE Directrices de indizacin y consideraciones de rendimiento Definir un ndice en un criterio de bsqueda altamente selectivo Evaluar el rendimiento entre crear varios ndices de una columna y un ndice compuesto </li> <li> Diapositiva 4 </li> <li> Consultas que utilizan el operador OR Devuelve las filas que cumplen cualquier condicin de cada criterio especificado en la clusula WHERE Aumenta de forma progresiva el nmero de filas devueltas con cada condicin de bsqueda adicional Puede utilizar un ndice o ndices diferentes para cada parte del operador OR Siempre realiza un recorrido de tabla o de ndice agrupado si una columna a la que se hace referencia en el operador OR no tiene un ndice o si ste no es til Puede utilizar varios ndices </li> <li> Diapositiva 5 </li> <li> Consultas que utilizan operaciones de combinacin Selectividad y densidad de una clusula JOIN Cmo se procesan las combinaciones Cmo se procesan las combinaciones de bucle anidado Presentacin multimedia: Cmo se procesan las combinaciones de mezcla Consideraciones acerca del uso de combinaciones de mezcla Cmo se procesan las combinaciones hash </li> <li> Diapositiva 6 </li> <li> Selectividad y densidad de una clusula JOIN Selectividad de una clusula JOIN Si las estadsticas estn disponibles, se basa en la densidad del ndice Si las estadsticas no estn disponibles, se basa en el nmero de consideraciones Densidad de una clusula JOIN Un ndice con un gran nmero de duplicados tiene alta densidad Un ndice nico tiene baja densidad Selectividad Porcentaje de filas devueltas </li> <li> Diapositiva 7 </li> <li> Cmo se procesan las combinaciones membermember member_no . 5678. 5678. Chen. Chen. Resultado ndice no agrupado nico ndice no agrupado chargecharge charge_no. 15259. 16351. 17673. 15259. 16351. 17673. member_no. 5678. 5678. 5678. 5678. 5678. 5678. member_no 5678 charge_no 30257 17673 15259 16351 32778 48897 60611 66794 74396 76840 86173 87902 99607 30257 17673 15259 16351 32778 48897 60611 66794 74396 76840 86173 87902 99607 (13 filas afectadas) USE credit SELECT m.member_no, c.charge_no, c.charge_amt, c.statement_no FROM member AS m INNER JOIN charge AS c ON m.member_no = c.member_no WHERE c.member_no = 5678 USE credit SELECT m.member_no, c.charge_no, c.charge_amt, c.statement_no FROM member AS m INNER JOIN charge AS c ON m.member_no = c.member_no WHERE c.member_no = 5678 </li> <li> Diapositiva 8 </li> <li> Cmo se procesan las combinaciones de bucle anidado USE credit SELECT m.member_no, c.charge_no, c.charge_amt, s.statement_no FROM member AS m INNER JOIN charge AS c ON m.member_no = c.member_no INNER JOIN statement AS s ON c.member_no = s.member_no WHERE m.member_no = 5678 USE credit SELECT m.member_no, c.charge_no, c.charge_amt, s.statement_no FROM member AS m INNER JOIN charge AS c ON m.member_no = c.member_no INNER JOIN statement AS s ON c.member_no = s.member_no WHERE m.member_no = 5678 Combina el resultado con las filas correspondientes de la tabla charge Recupera las filas correspondientes de ambas tablas y las combina 11 22chargecharge charge_no. 15259. 16351. 17673. 15259. 16351. 17673. member_no. 5678. 5678. 5678. 5678. 5678. 5678. statementstatement statement_no. 5678 15678. 5678 15678. member_no. 5678. 5678. ................................membermember member_no . 5678. 5678. Chen. Chen. </li> <li> Diapositiva 9 </li> <li> Consideraciones acerca del uso de combinaciones de mezcla Requiere que las columnas combinadas estn ordenadas Evala valores ordenados Utiliza un ndice del rbol existente Aprovecha las operaciones de ordenacin Realiza su propia operacin de ordenacin Consideraciones acerca del rendimiento USE credit SELECT m.lastname, p.payment_amt FROM member AS m INNER JOIN payment AS p ON m.member_no = p.member_no WHERE p.payment_amt &lt; 7000 AND m.firstname &lt; 'Jak' USE credit SELECT m.lastname, p.payment_amt FROM member AS m INNER JOIN payment AS p ON m.member_no = p.member_no WHERE p.payment_amt &lt; 7000 AND m.firstname &lt; 'Jak' </li> <li> Diapositiva 10 </li> <li> Cmo se procesan las combinaciones hash Claves hash xxx zzz yyy nnn...... member_nomember_no 1 1...... 9817...... Resultado member_nomember_nolastnamelastname 9817 DeBroux Bucket hash............ Filas de datos yyy 9817...... DeBroux 10686...... Zuvel 8342...... Hjellen xxx Entrada de sonda Entrada de generacin </li> </ul>