Question

J'ai remarqué que pour Crystal Reports fait par notre organisation et par certains de nos fournisseurs de logiciels de ERA ont tendance à utiliser des tableaux physiques pour les ensembles de données de leurs rapports, plutôt que d'utiliser une vue ou une procédure stockée pour recueillir les données . De temps en temps que j'ai vu des rapports stockés proceedures qui utilisent puis utilisez physiques tables plutôt que des tables temporaires pour stocker et manipuler des ensembles de données. Dans ces cas, la sortie du rapport existe souvent une table comme rpt_ap_vendors ou similaire, et il peut ou ne peut pas être dépourvu de données lorsqu'elles ne sont pas en cours d'utilisation.

Ce sont toujours des cas où le rapport est généré à la demande, de sorte que ce n'est pas un cas où un rapport pourrait être généré une fois et a servi plusieurs fois, et il n'y a pas de multiples rapports / procédures stockées accès ces données en même temps .

Quelle raison y aurait-il pour l'utilisation de tables physiques pour les rapports comme celui-ci? Y at-il une raison liée logique, technique ou la performance de le faire? Dans la génération de rapports, j'ai toujours utilisé des vues et des procédures stockées avec des tables temporaires ou tables dérivées mieux encore pour éviter un disque supplémentaire lit impliquant curage / suppression d'une table temporaire.

Était-ce utile?

La solution

(+) raisons de créer une table physique pour stocker les données du rapport:

  • Les données du rapport est réutilisable. Je signale Crystal Reports ou SharePoint à la table et ne vous inquiétez pas sur la fréquence ou lorsque ces outils ou mes utilisateurs finaux accéder aux données. (Eh bien, dans une certaine mesure, car la lecture à plusieurs reprises une grande table de rapport trash ma cache de mémoire tampon.) Je peux aussi maintenir une fenêtre glissante de vieux rapports pour les demandes inévitables le long des lignes de: « Pouvez-vous générer le rapport de l'année dernière encore, je? ne peut pas trouver I CSV extrait à l'époque. "

    Ceci est probablement la principale raison pour laquelle il est mis en place de cette façon sur votre site. Crystal Reports ne peut pas être assez intelligent pour mettre en cache les données du rapport que les utilisateurs paginate par ou modifier les paramètres du rapport. Ainsi, dans le pire des cas CR est régénérant votre rapport avec chacune de ces actions - une opération coûteuse et chronophage. Avec la table physique juste re-interroge la table autant de fois que nécessaire.

  • Définition des autorisations sur le rapport est facile. Vous voulez voir ce rapport? Eh bien, tout ce que vous avez besoin est la permission de lire les résultats, pas les générer . Voici donc, avoir des droits de lecture sur ce tableau dans un schéma verrouillé et filegroup / tablespace.

Par la mise en cache manuellement le rapport, vous contrôlez et isoler le processus de génération il. Vous donnez votre rapport aux lecteurs une plus grande liberté d'agir et vous moins de soucis en tant que DBA.

(-) Qu'est-ce que vous perdez avec une table de rapport physique:

  • flexibilité. Vous voulez changer le rapport? Argh, besoin de quelques changements DDL.
  • espace de stockage. Vous êtes persistant les données sur le disque, duh.

Autres conseils

Lors d'un précédent employeur, certains des rapports prendrait des heures à courir. Les rapports de fin de mois et de fin de trimestre ont été les pires (8 et 20 heures respectivement). En calculant les résultats, et de les stocker dans une table permanente, l'utilisateur peut regarder les résultats du rapport à sa guise sans recalculer les chiffres à la volée. Le processus qui a calculé les rapports a pu redémarrer si elle a été interrompue, de sorte que aussi aidé: dans cette partie sud de la Floride, il y avait plusieurs pannes de courant deuxième long chaque jour. Alors que la compagnie avait un générateur sur site pour les jours de mauvais temps, pas tout le personnel avait UPSes.

Certains des « grands utilisateurs » voulait pouvoir accéder aux données et crunch les chiffres dans Excel, ils avaient un accès en lecture seule aux tables de rapports.

Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top