Los proveedores de DBMS han estado trabajando en esto durante mucho, mucho tiempo. Como dijo Rik, es probablemente un problema insoluble, pero no creo que se haya realizado ningún análisis formal sobre la integridad de NP del espacio problemático.
Sin embargo, su mejor opción es aprovechar su DBMS tanto como sea posible. Todos los sistemas DBMS traducen SQL en algún tipo de plan de consulta. Puede utilizar este plan de consulta, que es una versión resumida de la consulta, como un buen punto de partida (el DBMS hará MUCHA optimización, aplanando las consultas en modelos más viables).
NOTA: el moderno DBMS utiliza un analizador "basado en costos" que no es determinista en las actualizaciones de estadísticas, por lo que el planificador de consultas puede cambiar el plan de consultas para consultas idénticas.
En Oracle (dependiendo de su versión), puede decirle al optimizador que cambie del analizador basado en costos al analizador basado en reglas deterministas (esto simplificará el análisis del plan) con una sugerencia SQL, p.
SELECT /*+RULE*/ FROM yourtable
El optimizador basado en reglas es obsoleta desde 8i pero todavía cuelga alrededor, incluso a través de 10g (no sé 'combate 11). Sin embargo, el analizador basado en reglas es mucho menos sofisticado: la tasa de error es potencialmente mucho más alta.
Para una lectura adicional de una naturaleza más genérica, IBM ha sido bastante prolífico con sus patentes de optimización de consultas. Este sobre un método para convertir SQL a un "plan abstracto" es un buen punto de partida: http://www.patentstorm.us/patents/7333981.html
Supongo que quiere decir exactamente el mismo conjunto de resultados. Eso significa que las mismas columnas (y los mismos tipos de datos) con la misma fila de datos. ¿Correcto? – Craig
Sí, eso es correcto Craig –