Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/09/2015, 13:11
Avatar de calakra
calakra
 
Fecha de Ingreso: septiembre-2009
Mensajes: 182
Antigüedad: 14 años, 7 meses
Puntos: 0
Información problemas con JOIN

Buena tarde a todos.

Tengo un query hasta cierto punto sencillo el cual es

Código SQL:
Ver original
  1. SELECT a.col1,a.col2,a.col4,a.col5,
  2.          b.col1,b.col2,b.col4,b.col5
  3. FROM tabla1 a ,tabla2 b
  4. WHERE a.col1*=b.col1
  5. AND a.col2>= filtro_tipo_fecha AND a.col2<= filtro_tipo_fecha
  6. AND b.col2 IN ('a','b','c','d')

los índices que tiene la tabla1 son
index uno a.col2,a.col3

los índices de la tabla2 son
index uno b.col2
index dos b.col1

El problema es que la tabla1 tiene poco menos de 20 millones de registros
El plan de ejecución me dice que hace un index escan con el índice uno de la tabla1 y ocupa menos de 20% de ejecución
y el otro índice que toma es el index dos de la tabla2 y tarda poco mas de 70%, esta parte se me hace un poco raro ya que y ocupo el índice uno en la búsqueda.

Mis dudas son, como puedo optimizar esta consulta, ya que tarda bastante.

o si me pueden ayudar a entender que tabla busca a que tabla y como poner bien los índices o por que ocupa el índice dos de la tabla2, quiero pensar que es por la forma en que esta haciendo el join pero creo que seria de la tabla1 el problema por no tener índice en esa columna

uso SYBASE 16

y no puedo crear una FK (no es por que no quiera ocuparlo.


Espero me puedan ayudar

Última edición por gnzsoloyo; 03/09/2015 a las 14:12