Desastre!
Você tenta executar o relatório por um mês no banco de dados e não os dois dias de teste de dados que você usou para o desenvolvimento.
De repente, tempo de execução do seu relatório vai de 20 segundo a duas horas.
Cada desenvolvedor de Cristal Reports experimentou essa situação e pode ser um dos aspectos mais frustrantes do design do relatório.
Felizmente, há uma variedade de coisas que pode ser feito para combater o mau desempenho, qualquer um dos quais possa colher benefícios enormes.
Aqui estão as cinco causas mais prováveis do mau desempenho e como mitigar seus efeitos.
1. A base de dados criada
Isto pode ou não pode estar dentro de seu controle direto de alterar, mas bancos de dados não estão configurados idealmente.
Dois principais candidatos são:
a: Os campos que você está filtrando não são indexados. Você pode verificar se este é ou não o caso, referindo-se a guia Vinculação na janela Database Expert. Campos indexados têm marcadores coloridos ao lado deles.
Eu pessoalmente tenho visto relatórios de executar centenas de vezes mais rápido devido à adição de um índice que está sendo adicionado a uma importante (para o filtro de relatório) de campo.
b: Usando uma visão, em vez de uma tabela para relatório pode ser devastador para o desempenho de um relatório. Isto é principalmente devido aos pontos de vista não ter índices. A vista é uma coleção de tabelas (muito parecido com um relatório básico) e é freqüentemente usado para simplificar os dados para usuários finais.
A única maneira de evitar isso é para informar sobre as tabelas que compõem a vista. Identificar se a fonte de um campo é uma tabela ou uma exibição pode ser feito através do Database Expert como tabelas e exibições são listados separadamente.
Identificar quais tabelas compõem uma visão pode ser muito mais complicado e você pode precisar da ajuda da documentação do banco de dados.
Além disso, quando se utiliza bancos de dados Oracle, desativando a opção case sensitive em consultas pode realmente acelerar o relatório vezes, mas poderá exigir relatórios existentes para ser reescrito.
2.Using o driver ODBC errada.
Drivers ODBC são como o Crystal Reports atribui ao banco de dados. Geralmente, há uma variedade de drivers ODBC que irá trabalhar para qualquer marca particular de banco de dados e alguns são melhores do que outros.
A única maneira de realmente testar isso é para executar o relatório com todos os drivers adequados ODBC e ver qual é o mais eficiente.
A experiência me ensinou que o driver ODBC fornecidos com o software associado ao banco de dados é geralmente a melhor opção.
Use 3.Excessive dos Relatórios Sub
Cada relatório de sub é como um outro relatório acessando o banco de dados, e se esse relatório sub é colocado no Detail Seção ele será executado para cada registro das cargas relatório principal. Mesmo se colocada em um grupo de seção do relatório sub ainda vai ser executado várias vezes.
Seções relatório são geralmente o lugar ideal para a casa de um relatório de sub como eles serão executados apenas uma vez. Mas isso ainda vira um relatório em duas, na medida do desempenho está em causa.
A melhor maneira de negar o problema de desempenho causada pelo sub relatórios é não usá-los.
Noventa e nove por cento de relatórios sub não são necessários e o mesmo resultado pode ser alcançado através de outros métodos de agrupamento, executando totais e / ou fórmulas.
4.Table Linking
Outra coisa senão um tipo de link de iguais ('=') irá causar uma degradação enorme no desempenho.
O Link janela Opções (acessível através botão direito do mouse em um link específico) permitirá que qualquer valor seja reposto.
Se houver uma necessidade para esta época do link, o mesmo resultado pode ser alcançado através da seleção de grupo ou através de formatação (e escondendo os registros indesejados), uma vez que são carregados no relatório.
5. Seleção de registro
Quando o código para a seleção de registro está escrito corretamente, o Crystal Reports vai passar toda a lógica para o banco de dados como SQL e retornar apenas os dados necessários.
Se a seleção de registro não é escrito de uma forma amigável SQL, Crystal Reports vai trazer de volta todos os dados e depois filtrá-la localmente. Isto pode ser drasticamente mais lento do que quando calculados na base de dados.
Usando o Record Expert Selector irá garantir que qualquer filtro criado será avaliada na base de dados e ser o mais eficiente possível.
Um ponto adicional que pode fazer a diferença em alguns casos é quando o relatório é programado para ser executado. Tráfego de rede ou uso de banco de dados pode afetar tempo de execução de um relatório.
Trabalhando através dos pontos acima irá aumentar a eficiência de seus relatórios lentamente em execução. Construção de seus relatórios com tudo isso em mente desde o começo você vai economizar tempo redesenvolvimento depois.
Nenhum comentário:
Postar um comentário