Gracias JoseGCB.
Por el momento tu solucion es la mas optima que he encontrado, los tiempos de ejecucion han bajado considerablemente, gracias de nuevo.
No se si habra alguna otra solucion mejor, o esta es la mas optima, pero seguire investigando....
Un saludo