Publications par Pierre-Louis BERTHOIN

, , Transformation LF en index

Pourquoi transformer des DDS en SQL? Une des raisons est que les index peuvent être beaucoup plus performants que les LF quand le moteur SQL les utilise. RappelPour transformer un PF en table Vous devez extraire le source en utilisant l’API QSQGNDDLLe plus simple est de passer par ACSEn faisant génération instruction SQL Vous obtenez […]

, Les jobs database QDBSVR*

Sur votre machine il y a un certain nombre de jobs systèmes qui tournent pour gérer votre base de données, voici les principaux et ce à quoi ils servent : QDBSRVXR Gère les références du catalogue principalement QADBXREF sauf des zones qui sont dans QADBIFLD QDBSRVXR2 C’est lui qui gère les références de zones dans […]

, , Suggestion d’Index agrégés

Vous connaissez index advisor, c’est une table que le système met à jour à chaque suggestion d’index, elle se nomme SYSIXADV et elle est dans QSYS2. Vous pouvez l’interroger par SQL en faisant un simple select et en appliquant un filtre par rapport à une date de dernière utilisation et soit un nombre de fois […]

, Réorganiser un très gros fichier

Voici la problématique qui nous est arrivée : Suite à un gros coup de ménage sur une petite machine saturée avec un énorme fichier de 12 millions d’enregistrement plus 30 millions d’enregistrements supprimés et 4 index dessus Le réflexe naturel, a été le bon vieux RGZPFM qui devait nous réorganiser tout ça … eh bien […]

, Utilisation QAQQINI

Le fichier QAQQINI sert à paramétrer les exécutions SQL pour un travail , et donc à donner des directives spécifiques sur les exécutions de requêtes, pour un travail donné. On ne verra pas ici toutes les options disponibles à ce jour, mais on présentera le principe. Celui qui est utilisé par défaut, c’est celui que […]

, Utilisez une table MQT

Une table de requête matérialisée (MQT Materialized Query Table) est une table dont la définition est basée sur le résultat d’une requête. Les données contenues dans un MQT sont dérivées d’une ou plusieurs tables sur lesquelles la définition de la table de requête matérialisée est basée. Cette solution est assez peu utilisée sur l’IBMi mais […]

, Génération CSV à partir de SQL

Il existe plusieurs méthodes pour faire du CSV, la solution la plus connue est la commande CPYTOIMPF. Les procédures SQL peuvent offrir une alternative intéressante dans certains cas, voici un exemple. Cette exemple utilise « Dynamic Compound Statement » avec la procédure QSYS2.IFS_WRITE_UTF8 quauoopt est le fichier des options PDM BEGIN— Génération fichier + entêteCALL QSYS2.IFS_WRITE_UTF8(PATH_NAME =>’/tmp/qauoopt.csv’,LINE […]

, , Joblog pending

Sur votre système, il peut rester des logs à l’état pending, ce n’est pas normal, c’est des logs qui ne sont pas accessibles, mais qui sont là … Vous pouvez facilement regarder cette information grâce à la vue QSYS2.SYSTEM_STATUS_INFO Vous devez d’abord vérifier la valeur système qui indique la production de ces logs.c’est QLOGOUTPUT qui […]

, Sauvegarde des objets modifiés

Vous connaissez tous les commandes SAVLIB LIB(&LIB), pour sauvegarder une bibliothèque et ses objetsSAVOBJ OBJ(*ALL) LIB(&LIB), pour sauvegarder tous les objets de votre bibliothèque il existe une commande qui permet de ne sauvegarder que les objets modifiés, c’est la commande SAVCHGOBJSAVCHGOBJ OBJ(*ALL) LIB(&LIB) REFDATE(&DATREF) REFTIME(&HREREF) Vous devrez indiquer une date/heure qui va servir de limite […]

, , Placer un job dans QCTL

Comment transférer un job dans qctl Il peut être important de lancer un job qui tourne même quand le système est en mode restreint Nous supposerons bien sûr que le sous-système de contrôle est QCTL. 1) Un job batch il suffit d’indiquer la jobq QCTL dans le SBMJOB exemple : Vous avez une commande qui […]