par Paul Conte - Mis en ligne le 16/11/2005 - Publié en Février 2005
SQL s'impose chaque jour comme un langage de programmation
que tout programmeur iSeries digne de ce nom
doit maîtriser. Pas seulement pour des requêtes et des rapports
ponctuels, mais aussi pour les applications au coeur de
l'activité de l'entreprise. C'est pourquoi il est aujourd'hui
tout aussi important de connaître toutes les astuces permettant
d'écrire du code rapide avec SQL, qu'avec ILE RPG ou
Cobol. Le manuel iSeries DB2 Universal Database for iSeries
Database Performance and Query Optimization couvre bon
nombre des « meilleures pratiques » de programmation SQL
et sa lecture s'impose. Mais, comme le manuel n'est pas exhaustif,
je me propose dans cet article de présenter plusieurs
techniques peu connues permettant d'accélérer le code
SQL.
Conseils de coding pour accélérer les applications SQL
Le premier groupe de conseils, ou d’astuces, s’applique
aux curseurs déclarés par une instruction Declare Cursor. On
trouve cette instruction dans des programmes SQL et des
programmes de service imbriqués (comme un programme
RPG ou Cobol qui contient des instructions SQL). On trouve
aussi l’instruction dans des procédures stockées, des fonctions
définies par l’utilisateur et des triggers écrits en SPL
(SQL Procedural Language). Dans la liste de conseils qui suit,
le terme « programme » désigne n’importe lequel de ces
types d’objets exécutables.
Certes, c’est un conseil bien connu, mais il est si important
qu’il mérite d’être répété. Après le mot-clé Select dans une
déclaration du curseur, ne codez que les colonnes que vous
voulez vraiment extraire, comme dans l’exemple suivant :
Declare Cursor CustNameCsr
Cursor For
Select CustId, CustName
From Customer
Order By CustName
Cette pratique peut accélérer l’extraction
(c’est-à -dire les opérations Fetch)
quand on ne veut que quelques colonnes
d’une table dans laquelle beaucoup de colonnes
sont définies. Sachez que vous
n’avez pas besoin de lister une colonne
pour extraction, pour pouvoir l’utiliser
dans les clauses Where ou For Update Of. A partir de la V5R2,
il n’est pas non plus nécessaire de lister une colonne pour
l’utiliser dans une clause Order By.
A moins d’utiliser la fonction structure hôte de SQL/400
(expliquée plus loin), vous ne devez pas spécifier « * »
comme raccourci pour « toutes les colonnes ». Ce raccourci
est plus lent, complique la compréhension du code, et présente
quelque danger quand on change des définitions de
tables ou de vues.
Téléchargez cette ressource
Comment accélérer la transformation des environnements de travail ?
Dans un monde professionnel en pleine mutation, la mobilité, l’efficacité énergétique, la sécurité et l’intelligence embarquée sont devenues des critères décisifs pour les équipements informatiques. Découvrez comment les nouveaux PC Microsoft Surface dotés des processeurs Snapdragon X Series s’imposent comme une réponse stratégique aux nouveaux enjeux IT.
Les articles les plus consultés
- Activer la mise en veille prolongée dans Windows 10
- Afficher les icônes cachées dans la barre de notification
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Cybersécurité Active Directory et les attaques de nouvelle génération
Les plus consultés sur iTPro.fr
- Toute infrastructure devient une infrastructure d’IA
- Mesures de cybersécurité à mettre en place d’ici 2030
- Projets d’IA : la maîtrise prime sur la vitesse
- Data & IA en 2025 : ce que les CDO révèlent aux équipes IT et data
- Le rôle du RSSI dans la prochaine décennie : leadership, risque et confiance à l’ère de l’IA
