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

Sécurité et conformité du Cloud
Ce guide vous permettra de revisiter vos connaissances et repenser votre posture en matière de sécurité et de conformité dans le cloud. Vous découvrirez comment mettre en place et déployer une stratégie de sécurité fluide et transparente. Un guide essentiel pour sécuriser votre cloud de façon pérenne.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Protégez l’accès non authentifié de vos réunions
- Télécommunications et durabilité : les défis d’une transition verte dans un secteur en mutation
- Vulnerability Operation Center : concepts, mise en œuvre et exploitation
- Faire face à l’évolution des cyberattaques : l’urgence d’une cybersécurité proactive
- Le temps où le RSSI était tenu pour seul responsable est révolu – la responsabilité incombe désormais à toute l’entreprise
