Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
DBFs x Indice
Message
 
À
07/02/2004 11:03:37
Hilmar Zonneveld
Independent Consultant
Cochabamba, Bolivie
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Titre:
Divers
Thread ID:
00873926
Message ID:
00875559
Vues:
29
>Se vocé suspeita que um índice é mau para a optimização, pode deshabilitá-o de diversas maneiras. Por >exemplo, pode criar um índice com um filtro. O filtro pode incluir todos os registros.

Nunca fui fão dos filtros pois sempre achei que agiliza a consulta (talvez, pois tem pouca documentação) mas compromete a entrada de dados. Mas isso na minha aplicação que tem uma grande massa de dados entrando a todo momento.

>Também pode deshabilitar um índice para uma consulta específica. Por ejemplo, a consulta:
>
>select * from Movimento;
> where Cliente = "abc" and MovementDate >= {^1990-01-01}
>... usará um índice por MovementDate. Isto pode selecionar muitos registros para o índice >MovementDate.

Sim, mas mesmo assim dependendo da sua massa de dados ainda será muito mais rápido do que um scan, visto que ele será um scan, mas a partir de um momento no tempo em diante o que agiliza muito o processo. Acredito que no máximo ele consegue ser tão lento quanto o scan e não mais do que ele. Se a árvore binaria não for boa, realmente não vale usar índice para ela.

>Se vocé cambiar a consulta a:
>select * from Movimento;
> where Cliente = "abc" and MovementDate + 1 >= {^1990-01-01} + 1
>está deshabilitando o índice por MovementDate, ja que nao concorda exatamente com a condição.

Ai tem um problema, você esta mudando o valor do MovementDate, o melhor seria +0 ou simplesmente inverte a condição, visto que o rushmore pega da esquerda para a direita:

{^1990-01-01} <= MovementDate
Cordialmente,

Fabiano Costa
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform