É possível usar os seguintes atributos para configurar o plug-in HashIndex. Esses atributos definem propriedades, como se você estiver usando um atributo ou HashIndex composto ou se a indexação do intervalo estiver ativada.
Quando a propriedade AttributeName de HashIndex inclui diversos nomes de atributos, o HashIndex será um índice composto. Caso contrário, se ela incluir somente um nome de atributo, ela é um índice de atributo único. Por exemplo, o valor da propriedade AttributeName de um HashIndex composto pode ser city,state,zipcode. Ela inclui três atributos delimitados por vírgulas. Se a propriedade valor AttributeName for apenas zipcode que tem apenas um atributo, ele será um HashIndex de atributo único.
O HashIndex composto fornece uma maneira eficiente de consultar objetos em cache quando os critérios de busca envolvem muitos atributos. No entanto, ele não suporta o índice de intervalo e sua propriedade RangeIndex deve ser configurada para false.
Para obter mais informações, consulte Usando um Índice Composto.
Se o atributo indexado de um HashIndex de atributo único for um relacionamento, tanto com valor único ou múltiplos valores, o HashIndex é um HashIndex de relacionamento. Para HashIndex de relacionamento, a propriedade RangeIndex de HashIndex deve ser definida para “false”.
O HashIndex de relacionamento pode acelerar as consultas que usam referências cíclicas ou usam os filtros de consulta IS NULL, IS EMPTY, SIZE e MEMBER OF. Para obter mais informações, consulte o Otimização de Consulta Utilizando Índices.
Para mapas sem entidade, quando a propriedade POJOKeyIndex do HashIndex é configurada para true, o HashIndex é um HashIndex principal e a parte da chave da entrada é usada para indexação. Quando a propriedade AttributeName do HashIndex não é especificada, a chave inteira é indexada; caso contrário, o HashIndex principal poderá ser apenas um HashIndex de atributo único.
Por exemplo, a inclusão da seguinte propriedade na amostra precedente faz com que o HashIndex se torne o HashIndex principal porque o valor da propriedade POJOKeyIndex é true.
<property name="POJOKeyIndex" type="boolean" value="true"
description="indicates if POJO key HashIndex" />
No exemplo do índice de chave anterior, como o valor da propriedade AttributeName é especificado como employeeCode, o atributo indexado é o campo employeeCode da parte da chave da entrada do mapa. Se você desejar construir o índice principal na parte da chave inteira da entrada do mapa, remova a propriedade AttributeName.
Quando a propriedade RangeIndex do HashIndex é configurada para true, o HashIndex é um índice de intervalo e pode suportar a interface MapRangeIndex. Uma implementação MapRangeIndex suporta funções para localizar dados usando funções de intervalo, como maior que, menor que, ou ambas, enquanto que um MapIndex suporta apenas funções iguais. Para um índice de atributo único, a propriedade RangeIndex pode ser configurada para true apenas se o atributo indexado for do tipo Comparable. Se o índice de atributo único for usado pela consulta, a propriedade RangeIndex deverá ser configurada para true e o atributo indexado deverá ser do tipo Comparable. Para o HashIndex de relacionamento e o HashIndex composto, a propriedade RangeIndex deve ser configurada para false.
A amostra precedente é um HashIndex de intervalo porque o valor da propriedade RangeIndex é true.
A tabela a seguir fornece um resumo do uso do índice de intervalo.
Tipo HashIndex | Suporta índice de intervalo |
---|---|
HashIndex de atributo único: chave ou atributo indexado é do tipo Comparable | Sim |
HashIndex de atributo único: chave ou atributo indexado não é do tipo Comparable | Não |
HashIndex Composto | Não |
HashIndex de Relacionamento | Não |
Definir índices pode significativamente melhorar o desempenho da consulta. As consultas do WebSphere eXtreme Scale podem usar plug-insHashIndex integrados para melhorar o desempenho das consultas. Embora o uso de índices possa aprimorar significativamente o desempenho da consulta, isso pode ter um impacto no desempenho nas operações do mapa transacional.