Optimizacion de consultas con volumen de información

Jorge E
19 de Marzo del 2003
Saludos,

Quisiera saber como mejorar un reporte que tiene un tiempo de respuesta de 2 min aprox.

Caso:
El reporte debe mostrar los clientes que no tuvieron ventas en un rango de fechas,agrupados por ubicaciones geográficas.

Tengo un sp que realiza la consulta y esta mas o menos organizado asi:
*tengo 1 tabla de mestro de clientes (38000 reg aprox)
*Tengo 1 tabla de clientes con ventas de forma diaria (Resumen de ventas por cliente y por dia con 15000 reg aprox)

Pasos del SP
* Saca en un tabla temporal logica local, los clientes que tienen ventas (aprox 2 seg)
* Saco del maestro de clientes los clientes que no tiene ventas, haciendo join con una tabla de que conitene la geografia (aprox 50 a 80 seg)
* Saco las descripcion del grupo de la geografica que deseo (aprox 12 seg ).

Los tips ya usados son:
* Creacion de indices a tablas reales
* Creacion de indices a tablas temporales
* Primero realizar filtos y luego los joins.


nota:
el select que mas se demora es mas o menos asi:

Select oficnia_cliente, Id_cliente, otros_atributos_cliente..., Ubicacio_geograf_cliete
from mastro_cliente left join geografia on
( mastro_cliente.Id_cliente = geografia.Id_cliente)
where
mastro_cliente.Id_cliente not in
( select Id_cliente form temporal_cliente_con_venta)