O potencial para armazenar dados em uma ordem não relacional nos bancos de dados HDAM, DEDB e PHDAM causa complicações ao lidar com intervalos de dados. Preferencialmente, ao pesquisar valores entre valueA e valueB, a pesquisa começa em valueA e emite chamadas Obter Próximo até valueB. Essa ordem de processamento só é possível em um formato sequencial indexado. Onde as chaves não estão na ordem sequencial, o posicionamento em valueA poderá estar além de algumas sugestões de segmentos. Nesse caso, o conjunto de resultados estará incompleto. O exemplo a seguir mostra o problema:
Select * from IMSSC1.IMSMP1.IMSDEMOS Where KEY >= 'A' and KEY <= 'D'
Neste exemplo, o aleatorizador colocou os registros fisicamente na seguinte sequência de chaves:
C A D E B H F
O posicionamento no primeiro valor, nesse caso A, e depois a emissão de chamadas Obter Próximo até o valor final de D retornaria apenas A e D, com o valor candidato C residindo fisicamente no conjunto de dados antes de A e depois de D.
O mesmo problema surge nas instruções SELECT, como:
Select * from IMSSC1.IMSMP1.IMSDEMOS Where KEY = 'D' or KEY = 'B' or KEY = 'A'
Nesse caso, três solicitações de GU são necessárias em vez de uma solicitação de GN com um intervalo (>='B' e <='D'). No caso da solicitação de intervalo, o IMS se posiciona no segmento 'B' e lê por meio do ponteiro duplo para frente e detecta a ausência dos segmentos 'C' e 'D' porque eles estão fisicamente armazenados antes do segmento 'B'. O número de solicitações de GU depende do número de predicados da consulta.
Portanto, se for solicitado um intervalo de um banco de dados HDAM, DEDB ou PHDAM, o PowerExchange será forçado a processar o banco de dados completo sequencialmente, selecionando todos os registros obrigatórios à medida que eles são encontrados.