Relations unissant les enregistrements de tables reliées. SAP 2011
seconde table comme table de recherche. Dans une mise en relation ordinaire, le Report Designer examine le premier enregistrement de la table principale et retrouve tous les enregistrements correspondants dans la table de recherche. Il passe ensuite au second enregistrement de la table principale, et ainsi de suite.
24.5.2 Relations unissant les enregistrements de tables reliées
Lorsque deux tables sont liées, les enregistrements qu'elles contiennent sont en général unis par une relation de type un-à-un ou un-à-plusieurs.
24.5.2.1 Relations de type un-à-un
Lorsque les enregistrements de deux tables reliées sont unis par des relations de type un-à-un, à chaque enregistrement de la table principale correspond un seul enregistrement dans la table de recherche (déterminé sur la base des champs reliés). Par exemple, dans Xtreme.mdb (l'exemple de base de données livré avec Crystal
Reports), la table Employés peut être reliée à la table Adresses des employés via leur champ commun ID employé.
La table Employés contient des informations sur les employés de l'entreprise : fonction, salaire, date d'embauche, etc. La table Adresses des employés contient l'adresse de chaque employé. Dans chacune de ces tables, il n'y a qu'un (et un seul) enregistrement par employé. Par conséquent, lorsque la table Employés est reliée à la table
Adresses des employés, vous n'avez à consulter qu'un seul enregistrement de la table Adresses des employés pour chaque enregistrement de la table Employés. Nous sommes donc bien en présence d'une relation de type un-à-un.
24.5.2.2 Relations de type un-à-plusieurs
Lorsque les enregistrements de deux tables reliées sont unis par des relations de type un-à-plusieurs, à chaque enregistrement de la table principale correspondent un ou plusieurs enregistrements dans la table de recherche, déterminés sur la base de champs de mise en relation. Par exemple, dans Xtreme.mdb (l'exemple de base de données livré avec Crystal Reports), la table Clients peut être reliée à la table Commandes via leur champ commun ID client. La table Clients contient des informations sur chaque client ayant passé une commande. La table Commandes contient des informations sur les commandes passées par les clients. Chaque client pouvant passer plusieurs commandes, il est possible que la table Commandes contienne plusieurs enregistrements correspondant à un même enregistrement de la table Clients. Nous sommes donc bien en présence d'une relation de type un-à-plusieurs.
24.5.3 Amélioration des performances dans les mises en relation de type un-à-plusieurs
Les informations fournies dans cette section permettent d'optimiser la vitesse de traitement et de réduire au maximum le trafic réseau lors de la création de rapports. Vous apprendrez à tirer parti des formules de sélection
528
©
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
et des index dans un environnement un-à-plusieurs pour rationaliser le reporting. Si vous ne suivez pas les conseils donnés ci-dessous, vous risquez de produire des rapports traitant beaucoup plus d'enregistrements que nécessaire.
Lorsque deux tables de base de données font l'objet d'une mise en relation de type un-à-plusieurs, le nombre d'enregistrements examinés pendant la comparaison de leur contenu dépend de plusieurs facteurs.
Les tables suivantes montrent les effets de ces différents facteurs sur le nombre d'enregistrements réellement lus. Ils sont basés sur le scénario suivant :
● La table A contient 26 enregistrements (une pour chaque lettre de l'alphabet).
● La Table B contient 2 600 enregistrements (100 enregistrements pour chaque enregistrement de la Table A).
● Le scénario consiste à créer un rapport permettant de trouver deux enregistrements spécifiques dans la
Table A et les 200 enregistrements (100+100) de la table B correspondant aux deux enregistrements de la
Table A.
Dans le meilleur des cas, le programme ne lit que 200 enregistrements environ pour accomplir cette tâche.
Dans le pire des cas, le programme doit lire environ 67 600 enregistrements pour accomplir cette tâche.
Remarque
Les facteurs de performance des fichiers de données sont différents de ceux des bases de données SQL. Par fichier de données, nous entendons tout fichier non SQL accessible directement depuis Crystal Reports. Par base de données SQL, nous entendons toute base de données acceptant des commandes SQL et accessible directement (ou via ODBC) depuis Crystal Reports, ainsi que les autres bases accessibles via ODBC.
Pour mieux comprendre la différence entre les bases de données accessibles directement et les sources de données ODBC, voir le chapitre Accès aux sources de données de l'aide en ligne.
24.5.3.1 Description détaillée des colonnes de diagramme
Les diagrammes de performances reproduits ci-dessous utilisent les colonnes suivantes :
● Mise en relation ou sous-rapport
Créez-vous un rapport à partir de bases de données reliées ou insérez-vous un sous-rapport que vous reliez aux données de votre rapport principal ?
● Formule de sélection
Votre rapport principal inclut-il une formule de sélection définissant une plage de valeurs pour le champ clé
(indexé) de la Table A ?
● Index A
La Table A est-elle indexée sur le champ que vous comptez utiliser pour mettre en correspondance ces enregistrements ?
● Index B
La Table B est-elle indexée sur le champ que vous comptez utiliser pour mettre en correspondance ces enregistrements ?
● Lectures dans A
Combien d'enregistrements le logiciel devra-t-il lire dans la Table A pour trouver les deux enregistrements recherchés ?
● Lectures dans B pour chaque A
Combien d'enregistrements le logiciel devra-t-il lire dans la Table A pour trouver les 200 enregistrements recherchés ?
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.
529
● Total des enregistrements lus
Quel est le nombre total des enregistrements que le logiciel a dû lire pour exécuter la tâche ?
Données PC
Mise en relation/
Sous-rapport
Formule de sélection
Non Mise en relation
Mise en relation
Oui
Mise en relation
Oui
Sous-rapport Non
Index A
Oui ou Non
Non
Oui
Non
Index B
Oui
Oui
Oui
Non
Sous-rapport Non Oui Non
Sous-rapport Non
Sous-rapport Oui
Sous-rapport Oui
Sous-rapport Oui
Oui
Non
Non
Oui
Oui
Non
Oui
Oui
26
2
26
2
2
26
2
26
26
Lectures dans A
Lectures dans B pour chaque A
Total des enregistreme nts lus
100 (26*100) 2 600
100 (26*100) 2 600
100 (2*100) 200
2 600
(26*2 600)
2 600
(26*2 600)
67 600
67 600
100 (26*100) 2 600
2 600
(2*2 600)
5 200
100 (26*100) 2 600
100 (2*100) 200
Données SQL
Mise en relation/
Sous-rapport
Mise en relation
Mise en relation
Sous-rapport
Sous-rapport
Formule de sélection
Non
Oui
Non
Oui
26
2
26
2
Lectures dans A Lectures dans B pour chaque A
100 (26*100)
100 (2*100)
100 (26*100)
100 (2*100)
Total des enregistrements lus
2 600
200
2 600
200
530
©
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

Public link updated
The public link to your chat has been updated.