Ver Mensaje Individual
  #5 (permalink)  
Antiguo 08/09/2011, 08:00
Avatar de moNTeZIon
moNTeZIon
 
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 20 años, 1 mes
Puntos: 9
Respuesta: ¿Se os ocurren formas de optimizar el rendimiento de esta SQL?

Hombre... pues índices no. Aunque... ¿piensas que son necesarios en este caso?
Lo digo porqué, precisamente, la clave principal de la tabla Temp está compuesta por los campos (Tipo, Serie, Numero) , y a su vez, la clave principal en la tabla [Lineas Facturación] está compuesta por (Tipo, Serie, Numero, Contador).
Se supone que si forman parte de la Primary Key no es necesario aplicar índices sobre estos campos... ¿O estoy equivocado?
Gracias!

Edito:
La siguiente SELECT me devuelve 178 filas:
Código SQL:
Ver original
  1. SELECT Tipo, Serie, Numero FROM [Cabecera Facturacion]
  2. WHERE Tipo IN (SELECT Tipo FROM TEMP)
  3. AND Serie IN (SELECT Serie FROM Temp)
  4. AND Numero IN (SELECT Numero FROM Temp)

Mientras que la siguiente SELECT me devuelve 1435 filas:
Código SQL:
Ver original
  1. SELECT Tipo, Serie, Numero FROM [Cabecera Facturacion]
  2. WHERE EXISTS (SELECT Tipo, Serie, Numero FROM Temp)

Lo mismo, lo mismo, no parece que sea una cosa que la otra... Suerte que no he lanzado el DELETE.
¿Sabes a qué puede deberse esa diferencuia de resultados?
Ya te adelanto que los resultados buenos son los del primer caso (178 facturas)

De momento estoy ocupando esta... pero me esta tardando mucho ya...
Código SQL:
Ver original
  1. SELECT Tipo + Serie + CStr(Numero) FROM [Cabecera Facturacion]
  2. WHERE Tipo + Serie + CStr(Numero) IN (SELECT Tipo + Serie + CStr(Numero) FROM Temp)

Gracias por tus opiniones.
Saludos.
__________________
..:: moNTeZIon ::..

Última edición por moNTeZIon; 08/09/2011 a las 08:25