![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
26/08/2009, 15:13
|
![Avatar de huesos52](http://static.forosdelweb.com/customavatars/avatar287966_22.gif) | Colaborador | | Fecha de Ingreso: febrero-2009 Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 16 años 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 |