L'index sur NOM
a amélioré considérablement les
performances mais son utilisation n'est possible que si vous recherchez en
utilisant la même casse (majuscule/minuscule) que celle stockée dans la
base de données. Cette section explique comment enlever cette restriction
sans perdre en performance.
- DB2
Les index basés sur des fonctions sont disponibles pour DB2
sur zOS
mais pas sur d'autres
systèmes.
La solution de repli est de créer une colonne réelle dans la
table qui détient le résultat d'une fonction ou d'une expression. La
colonne doit être maintenue par un trigger ou par la couche
applicative, suivant ce qui est le plus approprié. La nouvelle
colonne peut être indexée. La clause where
doit
utiliser la nouvelle colonne (sans l'expression).
- MySQL
MySQL est insensible à la casse par défaut mais il est
possible de configurer
ce comportement au niveau de chaque colonne. À partir de la
version 5.7, MySQL peut créer des index sur des colonnes
générées.
La solution de repli est de créer une colonne réelle dans la
table. Cette colonne détient le résultat de la fonction ou de
l'expression. La colonne doit être maintenue par un trigger ou par
la couche applicative, suivant ce qui est le plus approprié. La
nouvelle colonne peut être indexée. La clause
where
doit utiliser la nouvelle colonne (sans
l'expression).
- Oracle
La base de données Oracle supporte les index basés sur des
fonctions depuis la version 8i. Les colonnes
virtuelles ont été ajoutées en version
11g.
- PostgreSQL
PostgreSQL supporte complètement les index
sur expression depuis la version 7.4 (et partiellement depuis la
7.2).
- SQL Server
SQL Server supporte les colonnes
calculées qui peuvent être indexées depuis la version
2000.