Attribute des Plug-ins HashIndex

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.

Attribute

Name
Gibt den Namen des Index an. Der Name muss für jede Map eindeutig sein. Der Name wird verwendet, um das Indexobjekt von der ObjectMap-Instanz für die BackingMap abzurufen.
AttributeName
Gibt die durch Kommas getrennten Namen der zu indexierenden Attribute an. Bei Feldzugriffsindizes entsprechen die Attributnamen den Feldnamen. Bei Eigenschaftszugriffsindizes sind die Attributnamen die JavaBean-kompatiblen Eigenschaftsnamen. Wenn nur ein einziger Attributname vorhanden ist, ist der HashIndex ein Einzelattributindex. Wenn dieses Attribut eine Beziehung ist, ist es auch ein Beziehungsindex. Werden mehrere Attributnamen angegeben, ist der HashIndex ein zusammengesetzter Index.
FieldAccessAttribute
Wird für Maps verwendet, die keine Entitäts-Maps sind. Wenn diese Einstellung den Wert true hat, wird direkt über die Felder auf das Objekt zugegriffen. Wenn diese Einstellung nicht angegeben oder auf false gesetzt wird, wird die Getter-Methode des Attributs verwendet, um auf die Daten zuzugreifen.
POJOKeyIndex
Wird für Maps verwendet, die keine Entitäts-Maps sind. Wenn diese Einstellung auf true gesetzt ist, überwacht der Index selbst das Objekt im Schlüsselteil der Map. Diese Einstellung ist hilfreich, wenn der Schlüssel ein zusammengesetzter Schlüssel und in den Wert kein Schlüssel eingebettet ist. Wenn diese Einstellung nicht angegeben oder auf false gesetzt wird, überwacht der Index selbst das Objekt im Wertteil (value) der Map.
RangeIndex
Wenn diese Einstellung auf true gesetzt ist, ist die Bereichsindexierung aktiviert, und die Anwendung kann das abgerufene Indexobjekt in die Schnittstelle MapRangeIndex umsetzen. Wird die Eigenschaft RangeIndex mit dem Wert false konfiguriert, kann die Anwendung das abgerufene Indexobjekt nur in die Schnittstelle MapIndex umsetzen.

Gegenüberstellung eines HashIndex mit einem einzigen Attribut und eines zusammengesetzten HashIndex

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.

Beziehungs-HashIndex

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.

Schlüssel-HashIndex

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.

Bereichs-HashIndex

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.

Tabelle 1. Unterstützung für Bereichsindizes. Unterstützung eines Bereichsindex durch HashIndex-Typen
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

Abfrageoptimierung mit HashIndex-Plug-ins

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.