Évidemment, conserver plusieurs indices différents a un impact négatif sur les performances d'insertion et de suppression. Qu'en est-il des performances des requêtes: est-il logique de conserver trop d'indices sur une table? Les performances des requêtes s'amélioreront-elles dans tous les cas avec l'ajout d'un index (bien sûr pour les requêtes utilisant l'index du tout) ou est-il même possible que les performances de la requête se dégradent avec trop d'index car il devient nécessaire de consulter tous les index pour obtenir le résultat?
Dans le cas où il existe différents indices sur une table: seront-ils tous pris en compte, ou seulement les meilleurs du point de vue de l'optimiseur? Oracle met-il en œuvre des indices multidimensionnels?
oracle
performance
index
paweloque
la source
la source
Réponses:
Il faudra un peu plus de temps pour générer le plan lorsqu'il y aura plus d'indices à prendre en compte, mais je doute que la différence soit significativement significative. Les raisons de la suppression d'un index ne répertorient pas les performances des requêtes. D'un autre côté, en général, vous ne devez pas créer d'index sauf si vous savez qu'ils seront utilisés pour rendre une requête plus efficace.
Dans le manuel Oracle Concepts Guide , voici les critères de création d'un index.
Tous les index seront considérés dans le sens où tous les index des tables de la requête sont examinés pour déterminer s'ils peuvent être utilisés. Celles qui pourraient l'être sont examinées plus avant pour déterminer leur utilité.
la source
Tant que vos statistiques sont à jour, l'optimiseur basé sur les coûts doit prendre des décisions judicieuses quant aux index à utiliser. Si ce n'est pas le cas, c'est le moment d'utiliser des indices . Il ne consultera jamais un index sur une colonne qui n'est pas nécessaire pour satisfaire la requête.
la source
J'ai trouvé dans la sélection d' un indice de stratégie du Guide de l' Application Developer . Cette page concerne la «sélection d'une stratégie d'index»:
la source