Atributos del plug-in HashIndex

Puede utilizar los atributos siguientes para configurar el plug-in HashIndex. Estos atributos definen propiedades como por ejemplo si utiliza un HashIndex compuesto o de atributos, o si la indexación de rango está habilitada.

Atributos

Name
Especifica el nombre del índice. El nombre debe ser exclusivo para cada correlación. El nombre se utiliza para recuperar el objeto de índice de la instancia de correlación de objeto para la correlación de respaldo.
AttributeName
Especifica los nombres delimitados por comas de los atributos que se van a indexar. Para los índices de acceso de campo, los nombre de atributo son equivalentes a los nombres de campo. Para índices de acceso de propiedad, los nombres de atributo son los nombres de propiedades compatibles JavaBean. Si solo existe un nombre de atributo, el HashIndex es un índice de un solo atributo. Si este atributo es una relación, también es un índice de relación. Si se incluyen varios nombres de atributo en los nombres de atributo, HashIndex es un índice compuesto.
FieldAccessAttribute
Se utiliza para las correlaciones sin entidad. Si tiene el valor true, se accede al objeto utilizando los campos directamente. Si no se especifica o es false, se utiliza el método de obtención para el atributo para acceder a los datos.
POJOKeyIndex
Se utiliza para las correlaciones sin entidad. Si true, el índice hará una introspección del objeto en la parte de clave de la correlación. Este valor es útil cuando la clave es una clave compuesta y el valor no tiene la clave incorporada en él. Si no se especifica o es false, el índice hará una introspección del objeto en la parte de valor de la correlación.
RangeIndex
Si es true, la indexación de rango está habilitada y la aplicación puede difundir el objeto de índice recuperado a la interfaz MapRangeIndex. Si la propiedad RangeIndex se configura como false, la aplicación puede difundir el objeto de índice recuperado a la interfaz MapIndex solamente.

HashIndex de atributo único frente a HashIndex compuesto

Cuando la propiedad AttributeName de HashIndex incluye varios nombres de atributo, el HashIndex es un índice compuesto. De lo contrario, si incluye sólo un nombre de atributo, es un índice de atributo único. Por ejemplo, el valor de propiedad AttributeName de un HashIndex compuesto puede ser city,state,zipcode. Incluye tres atributos delimitados por comas. Si el valor de la propiedad AttributeName es solo zipcode, que solo tiene un atributo, es un HashIndex de un solo atributo.

El HashIndex compuesto proporciona una forma eficaz de buscar objetos almacenados en memoria caché, cuando los criterios de búsqueda implican muchos atributos. Sin embargo, no da soporte a índice de rango y su propiedad RangeIndex se debe establecer en false.

Para obtener más información, consulte Utilización de un índice compuesto.

HashIndex de relación

Si el atributo indexado de HashIndex de atributo único es una relación, ya sea con un único valor o con varios, HashIndex es un HashIndex de relación. Para el HashIndex de relación, la propiedad RangeIndex de HashIndex se debe establecer en “false”.

El HashIndex de relación puede acelerar las consultas que utilizan referencias cíclicas o que utilizan los filtros de consulta IS NULL, IS EMPTY, SIZE y MEMBER OF. Para obtener más información, consulte Optimización de consultas mediante el uso de índices.

HashIndex de clave

Para correlaciones no de entidad, cuando la propiedad POJOKeyIndex de HashIndex se establece en true, el HashIndex es un HashIndex de clave y la parte de clave de la entrada se utiliza para la indexación. Cuando no se especifica la propiedad AttributeName de HashIndex, toda la clave se indexa; de lo contrario, HashIndex de clave puede ser solo un HashIndex de atributo único.

Por ejemplo, añadir la propiedad siguiente al ejemplo anterior provoca que HashIndex se convierta en HashIndex de clave porque el valor de la propiedad POJOKeyIndex es true.

<property name="POJOKeyIndex" type="boolean" value="true" 
description="indicates if POJO key HashIndex" />

En el ejemplo de índice de clave anterior, debido a que el valor de la propiedad AttributeName se especifica como employeeCode, el atributo indexado es el campo employeeCode de la parte de clave de la entrada de correlación. Si desea crear índice de claves en toda la parte de clave de la entrada de correlación, elimine la propiedad AttributeName.

HashIndex de rango

Cuando la propiedad RangeIndex de HashIndex se establece en true, el HashIndex es un índice de rango y puede dar soporte a la interfaz MapRangeIndex. Una implementación MapRangeIndex da soporte a funciones para buscar datos utilizando funciones de rango como, por ejemplo, mayor que, menor que, o ambos, mientras que un MapIndex solo da soporte a funciones de igual a. Para un índice de un solo atributo, la propiedad RangeIndex se puede establecer en true solo si el atributo indexado es de tipo Comparable. Si el índice de atributo único va a ser utilizado por la consulta, la propiedad RangeIndex se debe establecer en true y el atributo indexado debe ser del tipo Comparable. Para el HashIndex de relación y el HashIndex compuesto, la propiedad RangeIndex se debe establecer en false.

El ejemplo anterior es un HashIndex de rango porque el valor de la propiedad RangeIndex es true.

En la tabla siguiente se proporciona un resumen para utilizar un índice de rango.

Tabla 1. Soporte para el índice de rango . Establece si los tipos HashIndex admiten el índice de rango.
Tipo HashIndex Soporta el índice de rango
HashIndex de atributo único: el atributo indexado o clave es del tipo Comparable
HashIndex de atributo único: la clave o atributo indexado no es del tipo Comparable No
Índice compuesto HashIndex No
HashIndex de relación No

Optimización de consultas con plug-ins HashIndex

La definición de índices puede mejorar considerablemente el rendimiento de las consultas. Las consultas de WebSphere eXtreme Scale pueden utilizar plug-ins HashIndex incorporados para mejorar el rendimiento de las consultas. Aunque el uso de los índices puede mejorar significativamente el rendimiento de la consulta, podría tener un impacto en el rendimiento en las operaciones de correlación transaccional.