Index

RPG (3 et 4, free), CL, SQL, etc...
Répondre
GFP
Messages : 5
Enregistré le : ven. 16 janv. 2015, 09:57:13

Message par GFP »

Bonjour,

nous lançons dans un de nos traitements un certain nombre de requêtes SQL sur plusieurs fichiers.

Plusieurs de ces requêtes nécessites l'utilisation d'expression, notamment pour convertir des zones séparées (alpha ou numérique) en zone date afin de faciliter les tests avec une variable de type date.

Lors de l'utilisation de Visual Explain pour obtenir des conseils sur les index à créer, je n'ai pas de proposition pour mettre ces expressions dans mes index (j'ai bien par contre les autres zones utilisées dans les WHERE ou les GROUP BY/ORDER BY).

Y-a-t'il un autre outil me permettant d'obtenir ce type d'information ? Par ailleurs, je me demande s'il est préférable d'utiliser une expression ou une UDF pour gérer ce genre de cas ?

Merci d'avance de votre retour.

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

Suggestion Index

Message par cmasse »

Bonjour,

je ne pense pas qu'il existe à ce jour d'autres produits graphiques que Visual Explain, pour suggérer des index.

SQE (nouveau moteur SQL) sait utiliser des index contenant des expressions (comme un calcul ou un traitement sur une date), mais je ne pense pas qu'il les suggère.

Enfin, une UDF sans doute est plus facilement réutilisable, mais ne peut JAMAIS être une clef d'index(erreur SQL0356), donc je dirais plutôt une expression s'il s'agit de pouvoir faire un index ensuite....
Christian Massé (Volubis.fr)

GFP
Messages : 5
Enregistré le : ven. 16 janv. 2015, 09:57:13

Message par GFP »

Bonjour,

Merci de votre réponse. Il est dommage en effet qu'on ne nous suggère pas les expressions alors que SQE peut les utiliser.

Je me posais également la question du placement de l'expression dans l'index. Car Visual Explain semble proposer les colonnes à indéxer dans un ordre particulier (par forcément un ordre séquentiel dans le fichier ou l'ordre d'utilisation dans la requête).

Je vais tester à différents endroits de placer l'expression dans l'index pour essayer de voir l'impact que cela peut avoir.

Répondre