Sie können die folgenden Attribute verwenden, um das Plug-in HashIndex zu konfigurieren. Diese Attribute definieren Eigenschaften so, als würden Sie ein Attribut oder einen zusammengesetzten HashIndex verwenden oder als wäre die Bereichindexierung aktiviert.
Wenn die Eigenschaft AttributeName des HashIndex mehrere Attributnamen enthält, ist der HashIndex ein zusammengesetzter Index. Enthält die Eigenschaft nur einen einzigen Attributnamen, ist der HashIndex ein Einzelattributindex. Der Wert der Eigenschaft "AttributeName" eines zusammengesetzten HashIndex kann beispielsweise city,state,zipcode sein. Er enthält drei Attribute, die durch Kommas voneinander getrennt sind. Wenn der Wert der Eigenschaft AttributeName nur aus zipcode besteht, hat der HashIndex nur ein einziges Attribut, d. h., er ist ein Einzelattribut-HashIndex.
Ein zusammengesetzter HashIndex ist eine effiziente Methode für die Suche zwischengespeicherter Objekte, wenn die Suchkriterien viele Attribute umfassen. Ein solcher Index unterstützt jedoch keine Bereichsindexierung, und seine Eigenschaft "RangeIndex" muss auf false gesetzt werden.
Weitere Informationen finden Sie unter Zusammengesetzten Index verwenden.
Wenn das indexierte Attribut eines Einzelattribut-HashIndex eine Beziehung (mit einem oder mehreren Werten) ist, ist der HashIndex ein Beziehungs-HashIndex. Für einen Beziehungs-HashIndex muss die Eigenschaft auf "false" gesetzt werden.
Ein Beziehungs-Hashindex kann Abfragen beschleunigen, die zyklische Referenzen oder die Abfragefilter IS NULL, IS EMPTY, SIZE und MEMBER OF verwenden. Weitere Einzelheiten finden Sie in Abfrageoptimierung mit Indizes.
Wenn die Eigenschaft POJOKeyIndex von HashIndex bei Maps, die keine Entitäts-Maps sind, auf true gesetzt wird, ist der HashIndex ein Schlüssel-HashIndex, und der Schlüsselteil des Eintrags wird für die Indexierung verwendet. Wenn die Eigenschaft "AttributeName" von HashIndex nicht angegeben wird, wird der gesamte Schlüssel indexiert. Andernfalls kann der Schlüssel-HashIndex nur ein HashIndex mit einem einzigen Attribut sein.
Das Hinzufügen der folgenden Eigenschaft im vorherigen Beispiel bewirkt beispielsweise, dass aus dem HashIndex ein Schlüssel-HashIndex wird, weil die Eigenschaft "POJOKeyIndex" den Wert true hat.
<property name="POJOKeyIndex" type="boolean" value="true"
description="indicates if POJO key HashIndex" />
Da im vorherigen Schlüsselindexbeispiel für die Eigenschaft AttributeName der Wert employeeCode angegeben wurde, ist das Feld employeeCode des Schlüsselteils des Map-Eintrags das indexierte Attribut. Wenn Sie den Schlüsselindex für den gesamen Schlüsselteil des Map-Eintrags erstellen möchten, entfernen Sie die Eigenschaft AttributeName.
Wenn die Eigenschaft "RangeIndex" von HashIndex auf true gesetzt wird, ist der HashIndex ein Bereichsindex und unterstützt die Schnittstelle MapRangeIndex. Eine MapRangeIndex-Implementierung unterstützt Funktionen, mit denen Sie Daten über Bereichsfunktionen, wie z. B. größer als und/oder kleiner als, suchen können, wohingegen die Schnittstelle "MapIndex" nur Vergleichsfunktionen unterstützt. Für einen Einzelattributindex kann die Eigenschaft RangeIndex nur dann auf true gesetzt werden, wenn das indexierte Attribut den Typ "Comparable" (Vergleichbar) hat. Wird der Einzelattributindex von einer Abfrage verwendet, muss die Eigenschaft "RangeIndex" auf true gesetzt werden und das indexierte Attribut den Typ "Comparable" haben. Für einen Beziehungs-HashIndex und einen zusammengesetzten HashIndex muss die Eigenschaft "RangeIndex" auf false gesetzt werden.
Das vorherige Beispiel ist ein Bereichs-HashIndex, weil die Eigenschaft "RangeIndex" den Wert true hat.
Die folgende Tabelle enthält eine Zusammenfassung für die Verwendung eines Bereichsindex.
Typ des HashIndex | Unterstützung von Bereichsindizes |
---|---|
Einzelattribut-HashIndex: indexierter Schlüssel, bzw. indexiertes Attribut hat den Typ "Comparable" | Ja |
Einzelattribut-HashIndex: indexierter Schlüssel, bzw. indexiertes Attribut hat nicht den Typ "Comparable" | Nein |
Zusammengesetzter HashIndex | Nein |
Beziehungs-HashIndex | Nein |
Die Definition von Indizes kann die Abfrageleistung erheblich verbessern. Abfragen von WebSphere eXtreme Scale können integrierte HashIndex-Plug-ins verwenden, um die Leistung von Abfragen zu verbessern. Die Verwendung von Indizes kann die Abfrageleistung zwar erheblich verbessern, sich aber nachteilig auf die Leistung von Operationen für Transaktions-Maps auswirken.