Ver Mensaje Individual
  #9 (permalink)  
Antiguo 26/08/2009, 15:13
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Problema Real

Efectivamente es mucho mas simple que la que planteas primero.

Mi experiencia en eficiencia de consultas sql (Lastimosamente no con MySQL) me ha dicho que el uso de subconsultas utilizadas en los condicionales, puede ser ineficiente para una gran cantidad de registros.
Particularmente en postgres, La comparación entre el uso de consultas con subqueries en la clausula in y el manejo de anidaciones de las tablas, tiene tiempos de respuesta con muchísima diferencia. (Mas de 60 segundos)

Desde aquel día, solo hago uso de las subconsultas en los condicionales cuando estoy seguro que la cantidad de registros no sea muy grande (Por su facilidad).

Una explicación analítica que le doy a esta situación (Mas no una explicación teóricamente comprobada) es la necesidad de ejecutar todas las subconsultas con un orden prioritario para después aplicar dichos resultados a la consulta principal. De la otra forma, considero se hace una especie de filtrado inicial que permite establecer los registros a mostrar sin la necesidad de ejecutar la totalidad de los registros de las tablas involucradas en la consulta.

Sin embargo, esperemos la opinión de personas con mas experiencia que nos den su punto de vista con respecto a este tema.

De este tipo de mensajes es que cada día nos enriquecemos mas.

saludos jurena y richarparrao que no se ha pronunciado.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Última edición por huesos52; 26/08/2009 a las 15:23