Suspeito que parte do que está acontecendo pode ser uma de três coisas: latência de rede entre o relatório e o banco de dados, problemas de memória, problemas de espaço em disco. Outra coisa que pode estar ocorrendo é que talvez você esteja usando um driver do SQL Server mais antigo. Dependendo da versão do banco de dados ao qual você está se conectando, você precisará da versão 10.0 ou 11.0 do Cliente Nativo do SQL Server para obter os melhores resultados.
Uma parte do truque ao lidar com grandes quantidades de dados no Crystal é enviar o máximo possível para o banco de dados. Caso contrário, o processamento normal do Crystal pode sobrecarregar a memória e o espaço em disco (fazendo sua própria troca de disco em vez de usar o espaço de troca do Windows). Existem várias coisas que você pode fazer para ajudar com isso:
1. Em Arquivo>>Opções, vá para a aba de Banco de Dados e certifique-se de que tanto "Usar Índices ou Servidor para Velocidade" quanto "Realizar Agrupamento no Servidor" estejam marcados.
2. No mesmo local, desmarque "Verificar no Primeiro Atualizar".
3. Se estiver vinculando tabelas, não use fórmulas no Expert de Seleção. Isso inclui declarações If. Se precisar usar uma fórmula para, por exemplo, obter uma subcadeia, tente codificá-la em uma Expressão SQL e depois usá-la no Expert de Seleção.
4. Se seu relatório mostrar apenas resumos (soma, máximo, etc.) e não os dados brutos, escreva um Comando (Declaração de Seleção SQL) para fornecer todos os dados para o relatório; isso enviará os cálculos de resumo para o banco de dados em vez de o Crystal calculá-los na memória.
Além disso, ao fechar o Crystal quando ele trava, ele não faz uma limpeza adequada: pode haver arquivos temporários potencialmente grandes em sua pasta temporária que você vai querer excluir. O formato do nome do arquivo será algo como ~*.rpt.
-Dell