Ver Mensaje Individual
  #3 (permalink)  
Antiguo 26/02/2013, 02:36
GeriReshef
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 12 años, 4 meses
Puntos: 40
Respuesta: Consulta anidada muy lenta

1. Libtas: Me parece que no hay diferencia entre Left Outer Join y Left Join.

2. En lugar de
Left Join TablaCol1 On ... Where ... Is Null
mejor utilizar Not Exists (en este caso):
Where Not Exists (Select 1 From TablaCol1 tc1 Where tc1.Col1=d.Col1).

3. ¿Estas seguro que entre las condiciones de la clausula Where hay "And" y no "Or"?
El "And" significa que todos los cincuenta códigos deben ser "huerfanos".

4. Supongo que las columnas col1..col50 en ambas tablas no estan indexadas (50 indices en cada tabla..).
La tarea con dos tablas de millones de filas y más de cincuenta columnas es muy pesada.
Yo intentaría utilizar un bucle y enviar cada vez los ID de los códigos que existen en TablaCol1 a una tabla temporal, para encontrar posteriormente los que faltan.
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog