Otimizando as consultas no ReportBuilder

Manual do Maker 2

Otimizando as consultas no ReportBuilder

Ao utilizar várias fontes de dados com Join's, fica a cargo do ReportBuilder fazer o filtro com estes join's.

Exemplificando:

Temos duas fontes de dados A e B. Estas fontes de dados fazem join entre si com um campo qualquer. O que é feito: o ReportBuilder faz a consulta no banco, traz todos os registros de cada fonte de dados e só depois que o join entre as fontes de dados será feito.

Isso sobrecarrega o Gerador de relatórios, pois fica a cargo do mesmo fazer o procedimento que o SGBD faria melhor.

Para resolver este problema, deve-se utilizar o mínimo de fonte de dados possível.

Veja as imagens abaixo:

  Várias fontes de dados:

Uma fonte de dados:

Um outro ponto que pode otimizar as consultas no ReportBuilder é a utilização de agrupamentos ao invés de subrelatórios. A utilização de subrelatórios muitas vezes força o usuário a ter várias fontes de dados, aí tem-se o problema citado acima. Veja a imagem abaixo, note que no exemplo, utiliza-se vários subrelatórios para agrupar os registros:

Uma solução para este problema é a utilização de agrupamentos do próprio ReportBuilder. Veja a imagem abaixo, note que no lugar dos subrelatórios, utilizou-se agrupamentos:

Feito os procedimentos citados acima, em muitos casos o ganho em performance é bastante significativo.

Observação: Há outros fatores que podem influenciar no momento da geração dos relatórios: memória física disponível, quantidade de registros consultados e capacidade de processamento da CPU por exemplo podem atrasar na geração dos mesmos

 

Caso este tópico não tenha comentário satisfatório, envie e-mail para [email protected]