, 5 petites astuces pour améliorer votre base de données

1) Vous désirez mettre des noms longs .

Vous avez un fichier pf, et pour les gens qui font des requetes dessus vous voulez mettre des noms plus signicatif

exemple remplacer num234 par numero_de_client

Vous ne voulez pas ou vous pas migrer vers une base en SQL , voila comment faire

Cette opération ne peut pas être faite en SQL
En effet ALTER TABLE FICHIER1 ALTER COLUMN ne permet pas de changer le nom de la colonne

C’est le mot clé Alias qui permet ca

Fichier avant

A R FICHIER1F
A*
A NUMCLI 5 0 COLHDG(‘Numéro’ ‘Client’)
A NOMCLI 30 COLHDG(‘Nom ‘ ‘Client’)
A PRECLI 30 COLHDG(‘Prénom’ ‘Client’)

Vous pouvez mettre des noms longs

fichier après ,on ajoute les alias

A R FICHIER1F
A*
A NUMCLI 5 0 COLHDG(‘Numéro’ ‘Client’)
A ALIAS(NUMERO_CLIENT)
A NOMCLI 30 COLHDG(‘Nom ‘ ‘Client’)
A ALIAS(NOM_CLIENT)
A PRECLI 30 COLHDG(‘Prénom’ ‘Client’)
A ALIAS(PRENOM_CLIENT)

Pour ne pas perdre vos données vous pouvez faire un change pf

CHGPF FILE(GDATA/FICHIER1) SRCFILE(GDATA/QDDSSRC) SRCMBR(FICHIER1)

Cette opération ne change pas le niveau de format , pas de recompile de votre applictation

vous devrez avoir le source sur votre machine de prod pour faire un CHGPF

Si vous n’avez pas le source mais que vous voulez préparer les données pour de la BI par exemple
vous pouvez faire des vues qui seront utilisées à la place de vos PF !

Exemple

CREATE VIEW fichier_client AS
SELECT nomcli as nom_client,
numcli as numero_client,
precli as prenom_client
FROM fichier1

2) Vous voulez ajouter une zone à notre pf

L’opération peut se faire cette fois directement par SQL, même sur un PF

Exemple, vous voulez ajouter une zone mail à votre fichier

ALTER TABLE FICHIER1 ADD COLUMN MAIL_CLIENT FOR COLUMN MAIL
CHARACTER ( 50) CCSID 1147 NOT NULL WITH DEFAULT

Vous ne perdez pas les données, ni les fichiers qui pointent dessus
Mais attention comme en DDS vous changer le niveau de format donc vos programmes doivent être recompilé ou vous devez indiquer lvlchk(*no) sur vos fichiers (analyse à faire)
Vous restez en format DDS Vous ne pourrez pas ajouter tous les types de données
Attention il faudra reporter la zone dans votre dds pour être cohérent

3) Contrôlez les données de vos fichiers

Si vous avez des fichiers PF, vous pouvez avoir des données erronées, vous pouvez maintenant simplement contrôler simplement la validité de vos données par une fonction table, systools.validate_data !

select *
from table (
systools.validate_data(
library_name => ‘votrebib’, file_name => ‘FICHIER1’,
member_name => ‘*LAST’) )

Ca vous permettra d’avoir la liste des enregistrements qui ont des erreurs de données, ca peut être intéressant de le faire de temps en temps sur les données sensibles de votre base.

4) Supprimer définitivement les enregistrements effacés

Quand vous supprimez vos données elles ne sont pas réellement supprimés elles sont juste flaguées
Pour les supprimer vous devez faire un RGZPFM de votre table qui supprimera réellement les enregistrements et qui reconstruira les indexes .
Commencer par le faire sur les tables qui ont le plus d’enregistrements supprimés

5) Contrôler qu’il ne vous manque pas d’index

Un des principaux, axe pour améliorer les performances de votre base de données est souvent d’ajouter des indexs manquant

Pour connaitre les indexes à analyser, vous avez une table qui s’appelle QSYS2.SYSIXADV qui vous propose des suggestions d’index

Vous pouvez ajouter les indexs qui sont souvent et régulièrement demandés

Vous pouvez également voir ces suggestions sur ACS.