2008-10-01 9 views
2

Nous utilisons Crystal 11 via leur serveur Web. Lorsque nous exécutons un rapport, il exécute la requête Sql et affiche la première page du rapport dans le visualiseur de rapports Web Crystal.Comment empêcher Crystal Webserver de récupérer des données sur chaque page

Lorsque vous appuyez sur le bouton de la page suivante, il réexécute la requête Sql et affiche la page suivante.

Comment pouvons-nous arrêter la requerying des données? Nous avons également plusieurs personnes exécutant les mêmes rapports en même temps (c'est un serveur web après tout), et nous ne voulons pas mettre en cache des données entre différentes instances du même rapport, nous voulons seulement mettre en cache le données dans chaque instance unique du rapport.

Répondre

1

La raison d'avoir pagination n'est pas seulement un problème de présentation. Avec la pagination, l'avantage le plus important est le chargement paresseux des données - de sorte qu'en théorie, en fonction des filtres donnés, vous ne chargez que ce dont vous avez besoin. Imaginez si vous avez des millions d'enregistrements dans votre base de données et que vous les chargez tous. Tout d'abord, ça va être beaucoup plus lent, ensuite vous allez chercher plein de trucs dont vous n'avez pas vraiment besoin. Tous les modèles Web sont aujourd'hui basés sur un chargement paresseux plutôt que sur un chargement en masse. Pensez à Google App Engine: vous ne pouvez pas récupérer plus de 1 000 enregistrements dans une transaction donnée à partir du magasin de données Google. Vous savez que si vous essayez de les afficher, votre navigateur va mourir.

Je vais terminer par une question - Avez-vous un problème de performance de quelque nature que ce soit?

Si oui, vous pensez probablement que vous l'améliorerez, mais ce n'est probablement pas le cas, car vous réduirez la charge sur le serveur, mais chaque requête consomme beaucoup plus de ressources. Si ce n'est pas mon conseil est de le laisser seul! :)