Rafael,
melhor vc analisar o uso dos indexes primeiro.
Pelo que voce falou, um search apenas era lento. Um search quasi que nao faz nada a na ser chamar um SELECT no SQL. Vale a pena vc verficicar se as coisas buscadas tem um index.
Olha so, recentemente, eu descobri que todos campos que os caras tinham botado naquele sistema dos edereços na v7, eles tinham esquecido dos indexes por examplo. Botei foi tipo entre 10x e 50x mais rapido para o tipo de operaçao que era feito. Ou seja um ganho bem maior do que botar um servidor maior. Depois falei para a OpenERP SA uns 3 meses atras e eles acabaram botando, mas é bem provavel que voce ou tenha uma versao anterior ou que se trata de um outro tipo de consulta onde faltaria os indexes tb.
Depois tem outras coisas para vc verificar. Se voce instalou modulos de terceiros u que fizeram, voces tem que controlar se a leitura dos campos tem um tempo tipo log(n) do numero de registros ou se parte para n^2 ou pior de acordo com a forma como esta programado. Por examplo se vce esquece um pre-fetch e faz um browse dentro de um loop dos ids, vc vai para n^2 ou n^3 ja.
Antes antes de pensar optimisar os servidor, vc tem muito mais para ganhar em analisar os processos lentos e e ver se nao teria alguma optimizaçao algoritmica a ser feita. Se vc por examplo tem um n^3 onde deveria ter um log(n), vc pode se lascar em pagar servidor 10x mais carro, vc nao vai resolver o problema.
Boa sorte.
--
Raphaël Valyi
Founder and consultant
