Un saludo especial desde COLOMBIA
cuando se trata de las consutas a las DB, hay varias cosas que optimizar, dependiendo cual sea tu necesidad o problema, por ejemplo memoria, velocidad, concurrencia entre entre otras..
claro que la mas usual es velocidad y si este es tu problema hay varias cosas que hacer..
- crearle indices a las tablas mas grandes(en volumen de registros) y mas consultadas.
- tratar de ponerle en todos los querys el nombre de la tabla.campo, y si te queda muy grande el sql, entonces almenos ponerle alias a las tablas
SELECT * FROM mi_tabla WHERE mi_tabla.campo1 = valor tendrá mejor rendimiento que
SELECT * FROM mi_tabla alias WHERE alias.campo1 = valor
y este SQL a su vez tendrá mejor rendimiento que
SELECT * FROM mi_tabla WHERE campo1 = valor
obviamente no se notará la diferencia en consultas sencillas, pero en consultas de muchos registros, que involucre varias tablas, la diferencia es notable
- Definir un buen espacio de memoria en la DB para almacenar los SQLs mas utilizados, al menos en ORACLE se puede hacer.
- Cuando necesites consultas de una porción de datos de una tabla que es muy grande, siempre será mejor hacer un SELECT anidado de esta tabla donde recuperes los datos necesarios
En fin, consejos como estos hay cantidades, que como te digo se aplican a cualquier motor de DB, ya que el afinamiento se hace es al SQL.....
hay un libro muy bueno, lo venden en la Universidad de Antioquia muy varato, aprox 18.000$ se llama TRUCOS DE SQL allí te enseñan además de muchas cosas, como afinar las consultas.
espero haber sido de ayuda.