Les progiciels en technologie Adonix prévoient dans le dictionnaire des tables standard des index conçus pour gérer les contraintes d'intégrité (par des clés uniques) et pour donner de bons temps de réponse dans la plupart des cas (index standards utilisés pour les listes gauches, les grosses tâches batch, les interrogations standard). Ces index peuvent porter sur 1 à 16 champs. Dans des index de ce type, on ne peut pas utiliser de champ indicé avec un indice supérieur à 1. Ainsi, par exemple, il est impossible de créer dans le dictionnaire un index sur la deuxième ligne d'une adresse.

Dans certains cas particuliers, il peut être intéressant de créer des index par paramétrage afin de réaliser une optimisation particulière (par exemple pour un état, ou pour optimiser une interrogation complexe). L'exemple typique peut être l'ajout d'un index dans une table volumineuse pour accélérer une la constitution des données d'une interrogation crée par le requêteur, ou encore l'utilisation d'un index dédié dans le paramétrage des objets, pour utiliser un ordre particulier dans une liste gauche.

Cette fonction permet de créer par paramétrage des index avec les propriétés suivantes :

  • Ils ne doivent pas être utilisés dans un programme de façon explicite, mais servent à accélérer des requêtes lorsque l'index normalement utilisé n'est pas discriminant
  • Ils peuvent être utilisés dans le paramétrage des listes gauches, afin de répondre par exemple à l'accélération des requêtes lorsque des filtres sont fréquemment faits sur certains champs. Ces filtres peuvent être par exemple des filtres induits par la gestion des rôles, ou des filtres utilisés par la fonction Sélection.
  • Ils peuvent porter sur des champs indicés (alors que les index standards décrits dans le dictionnaire des tables ne le peuvent pas). Un exemple d'utilisation peut être l'ajout d'index sur certains croisements analytiques (les sections sont des champs indicés, ce qui interdit un index standard ; en outre, compte tenu du nombre de croisements existants, il serait impossible de prévoir ceux qui seront le plus utiles).
  • Ils sont réputés autoriser des homonymes
  • Ils peuvent être activés ou désactivés à la demande

Cette fonction étant du paramétrage, les index définis sont pérennes : tout index déjà paramétré ainsi ne sera pas mis à jour par de nouvelles versions du progiciels. Par contre, une nouvelle version de progiciel est susceptible d'ajouter de nouveaux index dans la liste (mais ces index seront systématiquement proposés désactivés).

Il est important de bien comprendre que ces index ne doivent servir qu'à optimiser des traitements standards, des listes gauches ou des interrogations paramétrables. Si un index est nécessaire dans le cadre d'un développement spécifique, il faut considérer que cet index doit être défini dans le dictionnaire des données, et pérennisé par un code activité.

Pré-requis

SEEREFERTTO Reportez-vous à la documentation de Mise en oeuvre

Gestion de l'écran

Ecran de saisie

La saisie des index supplémentaires se fait dans un tableau, où l'on va définir, table par table, chaque index à créer.

Boutons spécifiques

Exécuter

Permet de lancer la mise à jour des tables en créant les index qui ont été ajoutés ou activés, mais aussi ou en supprimant les index qui ont été enlevés ou désactivés.

Attention, cette phase peut être longue et coûteuse en temps machine, dans la mesure où une indexation sur une table volumineuse nécessite sa lecture et la constitution de l'index. Par ailleurs, elle peut aussi nécessiter de la place disque et poser des problèmes s'il n'y a pas assez de marge de place dans la base. Dans ce cas, des messages d'erreurs explicites seront renvoyés par la base de données.