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.
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.
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.
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.
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.
Tipo HashIndex | Soporta el índice de rango |
---|---|
HashIndex de atributo único: el atributo indexado o clave es del tipo Comparable | Sí |
HashIndex de atributo único: la clave o atributo indexado no es del tipo Comparable | No |
Índice compuesto HashIndex | No |
HashIndex de relación | No |
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.