Rotation d'une structure de données pour une meilleur récupération
Si vous utilisez des sources de données réseaux ou hiérarchiques, telles que IMS, CA-IDMS/DB, et FOCUS, vous pouvez faire tourner la source de données de sorte à en créer une vue différente. Cela change le rapport entre certains segments et vous permet d'accéder à ceux-ci dans un ordre différent. En faisant un rapport d'une vue alterne, vous pouvez :
- Changer le chemin d'accès. Par exemple, vous pouvez accéder plus rapidement aux données d'un segment plus bas en élévant ce segment à un niveau supérieur.
- Changer la structure de chemin d'une source de données. Cette option est particulièrement utile pour créer un rapport avec plusieurs champs de tri se trouvant sur différents chemins du fichier. Par suite du changement de vue d'une hiérarchie de fichier, tous les champs de tri souhaités peuvent être sur le même chemin.
Veuillez noter que la récupération est contrôlée par le sous-arbre le moins référencé. Pour plus d'informations, consultez Comprendre l'efficacité du sous-arbre le moins référencé dans le chapitre Description d'un groupe de champs dans le manuel Description de données en langage WebFOCUS.
Par exemple, considérez les vues régulières et alternes ci-dessous :
Comme C est le segment racine dans la vue alterne, des instances particulières de C peuvent être sélectionnées plus vite.
x
Syntaxe : Faire une requête d'une autre vue
Pour faire une requête d'une vue alterne, il suffit d'ajouter le nom d'un champ trouvé dans le segment racine alterne au nom de fichier dans la commande TABLE, séparé d'un point (.):
TABLE FILE filename.fieldname
x
Référence : Notes d'utilisation pour la restructuration de données
- Si vous utilisez un champ non indexé, chaque instance de segments est récupérée jusqu'à ce que l'enregistrement spécifié soit rencontré. Ce processus est donc moins efficace que l'utilisation d'un champ indexé.
- Lorsque vous employez la fonctionnalité de vue alterne avec un segment enfant, la récupération des données de ce segment se fait dans l'ordre physique, non pas dans l'ordre logique. Cela parce que l'enfant devient le segment racine de la requête de rapport, et il n'y a pas d'indicateurs logiques entre les segments enfant de différents parents.
- L'application d'une vue alterne à un champ indexé est un cas particulier utilisant l'index pour la récupération. Lorsque vous effectuez la vue alterne sur un champ indexé, vous augmentez la vitesse de récupération. Cependant, il faut inclure un test d'égalité sur le champ indexé, par exemple WHERE (MONTH EQ 1) OR (MONTH EQ 2), afin de profiter de l'amélioration de performance.
- Un nom de champ spécifié dans une vue de fichier alterne ne peut pas être qualifié ou dépasser 12 caractères.
- La récupération indexée automatique (AUTOINDEX) n'est jamais invoquée dans une requête TABLE contre une vue de fichier alterne.
Exemple : Restructuration de données
Considérez la structure de données suivante, dans laquelle PROD_CODE est un champ indexé :
Vous pouvez lancer la requête suivante afin d'éléver le segment contenant PROD_CODE en haut de l'hiérarchie, permettant ainsi l'accès plus rapide aux données de ce segment.
TABLE FILE SALES.PROD_CODE
"SALES OF B10 DISTRIBUTED BY AREA"
SUM UNIT_SOLD AND RETAIL_PRICE
BY AREA
WHERE PROD_CODE EQ 'B10'
ON TABLE COLUMN-TOTAL
END