Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/07/2015, 06:02
bykovskialexei
 
Fecha de Ingreso: julio-2015
Mensajes: 3
Antigüedad: 8 años, 9 meses
Puntos: 0
Optimizar Consulta

Buenas Días

Ante todo les quiero pedir disculpas por si ofendo a alaguen con la pregunta.

Estoy haciendo mis primeros pasos en la optimización de las consultas. En este caso cuento con dos tablas sin indices para ver que arquitectura de la consulta resulta ser mas eficiente sin que la afecte uso de Indices.

Cuento con dos tablas T1 (CODIGO,NOMBRE,DIRECCION,BARRIO) - 1.000.000 registros y T2 (CODIGO, NOMBARRIO) con 50 regitros.

Tengo entendido que la mejor manera de hacer una query es en From poner la tabla con menor cantidad de registros (por el tema de la c) y en Inner join la mas grande, arme 4 versiones de misma consulta para ver cual de todas resulta ser mas eficiente en lo que es el tiempo de CPU, Logics Reads y Elapsed Time pero los resultados obtendos me dieron lo contrario, los mejores resultados obtuve en la query cual en From tenia la tabla mas grande.
Sabrían decirme porque ocurrió esto.
Aca les paso las consultas y sus resultados

Desde ya muchas Gracias

C.P.U. = 358 LOGIC READS T1 = 10.286 ELAPSED TIME = 1.032
Código SQL:
Ver original
  1. SELECT
  2.     T1.NOMBRE,
  3.     T1.DIRECCION,
  4.     T2.NOMBARRIO
  5. FROM T1
  6. INNER JOIN T2 ON T1.BARRIO = T2.CODIGO
  7. WHERE T1.BARRIO = '001'

C.P.U. = 250 LOGIC READS T1 = 10.286 ELAPSED TIME = 883 *
Código SQL:
Ver original
  1. SELECT
  2.     T1.NOMBRE,
  3.     T1.DIRECCION,
  4.     T2.NOMBARRIO
  5. FROM T1
  6. INNER JOIN T2 ON T1.BARRIO = T2.CODIGO
  7. WHERE T2.CODIGO = '001'

C.P.U. = 374 LOGIC READS T1 = 10.286 ELAPSED TIME = 1.028
Código SQL:
Ver original
  1. SELECT
  2.     T1.NOMBRE,
  3.     T1.DIRECCION,
  4.     T2.NOMBARRIO
  5. FROM T2
  6. INNER JOIN T1 ON T1.BARRIO = T2.CODIGO
  7. WHERE T1.BARRIO = '001'


C.P.U. = 327 LOGIC READS T1 = 10.286 ELAPSED TIME = 1.018
Código SQL:
Ver original
  1. SELECT
  2.     T1.NOMBRE,
  3.     T1.DIRECCION,
  4.     T2.NOMBARRIO
  5. FROM T2
  6. INNER JOIN T1 ON T1.BARRIO = T2.CODIGO
  7. WHERE T2.CODIGO = '001'

Última edición por gnzsoloyo; 07/07/2015 a las 06:16