No se mi concepto te sirva de algo,
Creo que despues de 2 años el problema de lenguaje no es, es posible que se la forma de contruccion de la base de datos, a veces es mejor usar un procedimiento donde se ejecuten los calculos de la base de datos y retornar el resultset, a veces las vistas anidadadas y reanidadas se vuelven ineficientes ya que no utilizan el mejor opcion de indices, trata de ejecutar un proceso que hallas identificado como lento en otro lenguaje como delphi y compara le velocidad de respuesta, se que java tampoco es un avion para procesar. Otro punto imprante la maquina donde procesas los datos es rapida o es un simple computador ? Recuerda que a medida que las bases de datos crecen mucho requieren procesos de administracion, discos, procesadores mas rapidos, mayor tamaño de bus de datos etc
saludes amigo
Ultimo concepto volver a empezar son otros dos anos al menos