FAQ InterSystems
Vous pouvez utiliser la classe %IndexBuilder
pour effectuer une reconstruction d'index à l'aide de plusieurs processus. L'exemple suivant a pour but de définir l'index standard HomeStateIdx pour la colonne Home_State (informations d'état de l'adresse de contact) de Sample.Person.
Les étapes sont les suivantes:
1. Masquez le nom de l'index à ajouter/reconstruire à partir de l'optimiseur de requêtes.
>write $system.SQL.SetMapSelectability("Sample.Person","HomeStateIdx",0)
1
2. Ajoutez %IndexBuilder à la superclasse la plus à droite de la définition de classe qui définit le nouvel index.
/// L'instruction de définition de classe est la suivante (ajoutez-la à l'extrême droite)
Class Sample.Person Extends (%Persistent, %Populate, %XML.Adaptor, %Library.IndexBuilder)
3. Enregistrez le nom de l'index à reconstruire dans le paramètre INDEXBUILDERFILTER de la définition de classe.
Index HomeStateIdx On Home.State;
Parameter INDEXBUILDERFILTER = "HomeStateIdx";
4. Compilez la classe.
5. Utilisez la méthode %ConstructIndicesParallel() pour reconstruire les index en parallèle.
set st=##class(Sample.Person).%ConstructIndicesParallel()
6. Une fois la reconstruction de l'index est terminée, exposez l'index ajouté à l'optimiseur.
>write $system.SQL.SetMapSelectability("Sample.Person","HomeStateIdx",1)
1
Veuillez vous référer au document ci-dessous pour plus de détails.
Comment reconstruire l'index pendant l'exécution de l'application [IRIS]
Comment reconstruire l'index pendant l'exécution de l'application