Effectuer une reconstruction d'index en parallèle dans plusieurs processus sur une application active
InterSystems rubrique FAQ
Vous pouvez utiliser la classe %IndexBuilder pour effectuer la reconstruction d'index dans plusieurs processus parallèles.
Voici un exemple dans le but de définir l'index standard HomeStateIdx pour la colonne Home_State (informations de l'État de l'adresse du domicile) 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)
12. Ajouter %IndexBuilder à la superclasse la plus à droite de la définition de classe qui définit le nouvel index.
///The class definition statement is as follows (add it at the far right)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. Compiler la classe.
5. Utiliser la méthode %ConstructIndicesParallel() pour reconstruire les index en parallèle.
set st=##class(Sample.Person).%ConstructIndicesParallel()6. Après avoir reconstruit l'index, exposez l'index ajouté à l'optimiseur.
>write$system.SQL.SetMapSelectability("Sample.Person","HomeStateIdx",1)
1Veuillez vous référer au document suivant pour plus de détails.
IRIS : Comment reconstruire des index avec une application active
Caché/Ensemble : Comment reconstruire des index avec une application active