> Tech > Conseils de coding pour accélérer les applications SQL

Conseils de coding pour accélérer les applications SQL

Tech - Par iTPro.fr - Publié le 24 juin 2010
email

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.

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 gratuitement cette ressource

Protection des Données : 10 Best Practices

Protection des Données : 10 Best Practices

Le TOP 10 des meilleures pratiques, processus et solutions de sécurité pour mettre en œuvre une protection efficace des données et limiter au maximum les répercutions d’une violation de données.

Tech - Par iTPro.fr - Publié le 24 juin 2010