Ver Mensaje Individual
  #4 (permalink)  
Antiguo 11/02/2010, 21:42
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: INSERT con seleccion de 2 datos no me funca!

El tema es que el concepto es el mirmo, por eso lo decía.
Si vas a hacer un volcado de datos desde una tabla o un JOIN de tablas a otra, no te conviene tomar los valores individuales como subconsultas en el SELECT, porque eso hace que esa/s subconsulta/s se hagan una vez por cada campo en cada registro que se lea... y el hecho de que pueda haber más de un resultado en ese JOIN significa que lo hará primero con todos los registros, para recién entonces tomar el primero.
Por eso se considera poco eficiente.
A eso debes sumarle que si el WHERE campo = valor se hace sobre un campo que no es PK o no tiene índice definido sobre él, la consulta deberá leer al menos la mitad de la tabla (estimativamente hablando) antes de encontrar el valor buscado, y hará en toda esa tabla las subconsultas, una por vez....

O sea, si puedes hacer un INSERT ... SELECT sin meterle subconsultas en el SELECT, mejor.

Detalle: Si las subconsultas son parte del FROM o el WHERE, no tienen tanto impacto y son optimizables. Las que les pongas como campos del SELECT, no.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)