Considérations de performances pour tous les rapports. SAP 2011
correspondants dans la Table B (100), puis renvoie les 200 enregistrements fusionnés au moteur de rapports.
● Si aucune formule de sélection n'est spécifiée ou si une formule de sélection ne définit aucune limite de plage dans la Table A, le serveur associe chaque enregistrement dans la Table A (26) aux enregistrements correspondants dans la Table B (100), puis renvoie les 2 600 enregistrements fusionnés au moteur de rapports.
Dans les deux cas, le moteur de rapport applique ensuite l'intégralité de la formule de sélection aux enregistrements fusionnés.
24.5.5.2 Sous-rapports et bases de données SQL
Si vous créez un rapport principal depuis la table A et un sous-rapport depuis la table B :
● Le nombre de sous-rapports exécutés dépend de la présence d'une formule de sélection dans le rapport principal :
○ Si une formule de sélection est spécifiée et transmet les limites de plage dans la Table A, le logiciel exécute uniquement les enregistrements répondant aux condition de limites de plage (2).
○ Si aucune formule de sélection n'est spécifiée ou si la formule de sélection ne transmet pas les limites de plage dans la Table A, le logiciel exécute un sous-rapport pour chaque enregistrement dans la Table A
(26).
● Le nombre d'enregistrements lus par chaque sous-rapport reste identique, qu'une sélection de limites de plage ait été appliquée ou non à la Table A. Chaque sous-rapport lit uniquement les enregistrements dans la
Table B qui correspondent à chaque enregistrement dans la Table A (100).
24.5.6 Considérations de performances pour tous les rapports
24.5.6.1 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.
Guide de l'utilisateur de SAP Crystal Reports 2011
Bases de données
©
2013 SAP AG ou société affiliée SAP. Tous droits réservés.
533
● 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.
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.
24.5.6.2 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.
24.5.6.3 Considération 3
Si les champs que vous utilisez dans la table A ne sont pas indexés mais que celle-ci contient par ailleurs un champ indexé, essayez de l'utiliser. Par exemple, supposons que vous ayez trois produits (Produit 1, Produit 2 et
534
©
2013 SAP AG ou société affiliée SAP. Tous droits réservés.
Guide de l'utilisateur de SAP Crystal Reports 2011
Bases de données

Публичная ссылка обновлена
Публичная ссылка на ваш чат обновлена.