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

Guide Adobe Firefly, l’IA générative dédiée aux équipes créatives
Depuis plus d’une décennie, Adobe exploite l’intelligence artificielle (IA) pour proposer des solutions toujours plus performantes et innovantes aux équipes créatives. Comment le nouveau moteur d’IA générative Adobe Firefly permet-il aux entreprises de développer leurs capacités créatives et de tirer, dès à présent, tout le profit de l'IA générative ?
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Accessibilité numérique : l’impact des nouveaux design systems iOS et Android sur l’expérience utilisateur mobile
- Cloud et IA générative : le secteur de la santé visé
- La progression latérale dans les cyberattaques échappe encore à la détection !
- Panorama de la maturité cyber des entreprises françaises
- L’IA n’est pas une stratégie, elle est au service de VOTRE stratégie. Alors posez-vous donc les bonnes questions !
