Récupération clé à partir des fichiers HOLD

Comment :

La récupération clé est supportée avec tout(e)source de données SUFFIX=FIX à segment unique ou fichier HOLD trié en fonction de la clé. La récupération clé peut réduire les IO (entrée-sortie) rencontrées en lisant les fichiers d'extrait, en utilisant le paramètre SEGTYPE dans le fichier Master pour identifier les champs qui composent la clé logique pour les fichiers séquentiels. Si FIXRETRIEVE est mis à :

La commande ON TABLE HOLD vous permet de lire une des nombreuses sources de données supportées et de créer des fichiers d'extrait. Vous pouvez, par la suite, relier ces fichiers séquentiel en format fixe à d'autres sources de données afin de réduire votre vue des données. Le concept d'une clé logique dans un fichier en format fixe permet la recherche de clés qualifiée pour tous les enregistrements qui correspondent aux tests IF/WHERE pour les premiers champs Keyn identifiés par l'attribut SEGTYPE. La récupération s'arrête lorsque le test de présélection détecte des valeurs supérieures à celles indiquées dans le test IF/WHERE.

Lorsqu'un fichier maître est créé pour le fichier d'extraction, un SEGTYPE de S n ou de SHn est ajouté, en fonction des champs BY dans la requête. Par exemple, PRINTchamp BY champ crée un fichier Master HOLD avec SEGTYPE=S1. L'utilisation de BY HIGHEST champ crée un fichier maître où SEGTYPE=SH1.


Haut de page

x
Syntaxe : Contrôler la récupération clé pour un fichier HOLD
SET FIXRET[RIEVE] = {ON|OFF}

où :

ON
Permet la récupération clé. ON est le paramètre par défaut.
OFF
Désactive la récupération clé.


Exemple : Fichier Master pour la récupération clé à partir d'un fichier HOLD

Le fichier Master suivant décrit un fichier séquentiel en format fixe avec des valeurs triées de SEQ_NO, dans l'ordre croissant de 1 à 100 000.

FILE=SORTED,SUFFIX=FIX,$
SEGNAME=ONE,SEGTYPE=S1,$
 FIELD=MYKEY,MK,I8,I8,$
 FIELD=MFIELD,MF,A10,A10,$
 
TABLE FILE SORTED 
 PRINT MFIELD
 WHERE MYKEY EQ 100
END

Dans le cas présent, où FIXRETRIEVE=ON, la récupération s'arrête lorsque MYKEY atteint 101, ce qui réduit considérablement le nombre potentiel de IO, comme seulement 101 enregistrements sont lus sur 100 000.



Exemple : Critères de sélection pour la récupération par clé à partir d'un fichier d'extraction

Critères de sélection comprenant des listes de valeurs d'égalité utilisent la récupération clé. Par exemple,

{IF|WHERE} MYKEY EQ x OR y OR z

les tests IF et WHERE peuvent aussi inclure les tests de plage. Par exemple,

{IF|WHERE} MYKEY IS-FROM x TO y

le nombre maximal de critères de tri vertical (BY) est toujours 32.

En utilisant cette fonctionnalité, rappelez-vous que si vous ajoutez des enregistrements non-triés à un fichier HOLD trié, les enregistrments hors séquence ne sont pas récupérés. Par exemple, supposez qu'un fichier trié comprend les trois enregistrements suivants :

Key
1 1200
2 2340
3 4875

et que vous ajoutez l'enregistrement suivant en bas du fichier :

1 1620

Où FIXRETRIEVE=ON, le nouvel enregistrement dont la valeur clé est 1 est omis, car la récupération s'arrête dès qu'une valeur clé de 2 est rencontrée.


WebFOCUS