Irei postar uma série de dicas de performance no progres.

NUNCA utilize funções na cláusula WHERE nos campos da tabela sendo procurada. Utilize as funções sempre nos valores a serem localizados.

Certo
FOR EACH tabela
   WHERE tabela.campo = string(variavel)
   NO-LOCK:
END.

Errado
FOR EACH tabela
   WHERE string(tabela.campo) = variavel
   NO-LOCK:
END.

Faça o teste.