Considérations de performances pour tous les rapports. Business Objects Crystal Reports 2008 SP1
Bases de données
25
Mises en relation des tables
Considérations de performances pour tous les rapports
Considération 1
Que vous manipuliez des fichiers de données et/ou des bases de données
SQL, le logiciel analyse l'intégralité de la formule de sélection et passe les critères transmissibles en ignorant les autres. Par exemple, si la formule trouve d'abord des critères qu'elle peut transmettre, ensuite des critères qu'elle ne peut pas transmettre, puis de nouveau des critères qu'elle peut transmettre, elle transmet la première partie, omet la seconde et transmet la troisième.
• Dans le cas de fichiers de données, elle transmet ces critères à la couche
Traduction de la base de données.
• Dans le cas d'une base de données SQL, elle transmet ces critères au serveur sous forme d'une clause WHERE.
A quelques exceptions près, les critères transmissibles de la formule de sélection sont ceux qui comparent un champ à une constante. Cette catégorie de critères englobe tous ceux qui peuvent être définis à l'aide de l'Expert
Sélection (champ égal à, parmi, inférieur à, supérieur à, inférieur ou égal à, supérieur ou égal à, entre, commence par, ou comme constante).
Dans ce domaine, deux cas de figures particuliers doivent être pris en considération. Il s'agit de ceux dans lesquels la formule contient plusieurs conditions dont certaines sont intransmissibles.
• Formules de type AND (ET)
{customer.REGION} = "CA" and
{customer.CUSTOMER ID}[3 to 5] = "777")
Dans cette situation, le logiciel peut transmettre la condition avant l'opérateur And mais pas après. Dans la mesure où les enregistrements susceptibles de répondre à la seconde condition devront avoir déjà obligatoirement répondu à la première, le logiciel transmet d'abord celle-ci.
Il extrait ensuite l'ensemble de données approprié, puis le soumet à la seconde condition. La règle avec les formules AND est donc que le logiciel transmet les conditions transmissibles.
726 Guide de l'utilisateur de Crystal Reports 2008 SP1
Bases de données
Mises en relation des tables
25
Remarque :
Si toutes les conditions d'une formule AND peuvent être remplies sur le serveur ou dans la DLL de la base de données, le logiciel transmet ces conditions.
• Formules de type OR (OU)
{customer.REGION} = "CA" or
{customer.CUSTOMER ID}[3 to 5] = "777")
Dans cette situation, le logiciel peut également transmettre la condition avant l'opérateur Or mais pas après. Cependant, comme il peut arriver que des enregistrements répondent à la seconde condition mais pas à la première, la transmission de celle-ci n'a aucun sens et risque au contraire de provoquer l'extraction d'une série de données incomplète.
En d'autres termes, même s'il parvient à extraire toutes les données répondant à la première condition, le logiciel devra de toute façon extraire l'ensemble des données de la ou des tables avant d'appliquer la seconde condition dans le Report Designer. C'est pourquoi, plutôt que de dupliquer une partie des données extraites, le logiciel ne passe rien. Il extrait l'ensemble des données puis exécute les deux tests dans le
Report Designer. La règle avec les formules de type OR est donc de transmettre tous les critères ou de n'en transmettre aucun.
Remarque :
Si tous les tests d'une formule OR peuvent être effectués sur le serveur ou dans la DLL de la base de données, le logiciel transmet tous les tests.
Considération 2
Pour savoir si le logiciel peut utiliser l'index de la Table A pour améliorer la performance, vérifiez :
• qu'il existe une formule de sélection ;
• qu'il existe des limites de plage dans la formule de sélection applicables au champ clé (indexé) de la Table A ;
• que l'option Utiliser des index est activée dans la boîte de dialogue
Options.
Guide de l'utilisateur de Crystal Reports 2008 SP1 727

Lien public mis à jour
Le lien public vers votre chat a été mis à jour.