Vous pouvez utiliser les attributs suivants pour configurer le plug-in HashIndex Ces attributs définissent des propriétés comme si vous utilisiez un attribut ou un index HashIndex composite ou que l'indexation de plage était activée.
Lorsque la propriété AttributeName de l'index HashIndex contient plusieurs noms d'attributs, l'index HashIndex est un index composite. Dans le cas contraire, si l'index inclut un seul nom d'attribut, il s'agit d'un index à attribut unique. Par exemple, la valeur de la propriété AttributeName d'un HashIndex composite pourra être city,state,zipcode. L'index contient trois attributs séparés par des virgules. Si la valeur de la propriété AttributeName est uniquement zipcode qui n'a qu'un seul attribut, il s'agit d'un index HashIndex à attribut unique.
Les index HashIndex composites constituent un mode efficace de consultation des objets mis en cache lorsque les critères de recherche impliquent plusieurs attributs. Toutefois, ils ne prennent pas en charge les index de plage et la propriété RangeIndex doit avoir la valeur false.
Pour plus d'informations, voir Utilisation d'un index composite.
Si l'attribut indexé d'un HashIndex à attribut unique est une relation, que ce soit à valeur unique ou à valeurs multiples, l'index HashIndex est un HashIndex de relation. Pour l'index HashIndex de relation, la propriété RangeIndex de l'index HashIndex doit être définie sur false.
Les HashIndex de relation peuvent accélérer l'exécution des requêtes qui exploitent des références cycliques ou qui utilisent les filtres de requête IS NULL, IS EMPTY, SIZE et MEMBER OF. Pour plus d'informations, voir Optimisation des requêtes à l'aide d'index.
Dans le cas de mappes de non-entité, lorsque la propriété POJOKeyIndex de HashIndex a la valeur true, l'index HashIndex est un index HashIndex de clés et la partie clé de l'entrée est utilisée pour l'indexation. Lorsque la propriété AttributeName du HashIndex n'est pas spécifiée, la totalité de la clé est indexée. Sinon, le HashIndex de clés ne peut être qu'un HashIndex à attribut unique.
Par exemple, l'ajout de la propriété suivante dans l'exemple précédent transforme le HashIndex en HashIndex de clés car la propriété POJOKeyIndex a la valeur true.
<property name="POJOKeyIndex" type="boolean" value="true"
description="indicates if POJO key HashIndex" />
Dans l'exemple d'index de clé précédent, comme la propriété AttributeName a la valeur employeeCode, l'attribut indexé est la zone employeeCode de la partie clé de l'entrée de mappe. Si vous souhaitez générer un index de clé sur la totalité de la partie clé de l'entrée de mappe, supprimez la propriété AttributeName.
Lorsque la propriété RangeIndex de HashIndex a la valeur true, l'index HashIndex est un index de plage et il peut prendre en charge l'interface MapRangeIndex. Une implémentation MapRangeIndex prend en charge des fonctions de recherche de données à l'aide des fonctions de plage (range) telles que greater than, less than ou les deux, alors qu'un index MapIndex prend uniquement en charge les fonctions d'égalité (equals). Pour un index à attribut unique, la propriété RangeIndex ne peut avoir la valeur true que si l'attribut indexé est de type Comparable. Si l'index à attribut unique est utilisé par la requête, la propriété RangeIndex doit avoir la valeur true et l'attribut indexé doit être de type Comparable. Pour l'index HashIndex de relation et l'index HashIndex composite, la propriété RangeIndex doit avoir la valeur false.
L'exemple qui précède est un index HashIndex de plage car la propriété RangeIndex a la valeur true.
Le tableau qui suit récapitule l'utilisation de l'index de plage.
Type de HashIndex | Prise en charge de l'index de plage |
---|---|
HashIndex à attribut unique : la clé ou l'attribut indexé est de type Comparable | Oui |
HashIndex à attribut unique : la clé ou l'attribut indexé n'est pas de type Comparable | Non |
HashIndex composite | Non |
HashIndex de relation | Non |
La définition d'index peut améliorer sensiblement les performances des requêtes. Les requêtes WebSphere eXtreme Scale peuvent utiliser des plug-in HashIndex pour améliorer les performances des requêtes. Même si l'utilisation des index peut considérablement améliorer les performances des requêtes, elle n'est pas sans impact sur les performances des opérations transactionnelles des mappes.