Combien d'index faut il créer ?

Résolu
vincentstryckmans Messages postés 228 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 25 octobre 2006 - 20 oct. 2005 à 11:03
vincentstryckmans Messages postés 228 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 25 octobre 2006 - 21 oct. 2005 à 07:34
Bonjour,



Mon application enregsitre les description d'incident ferroviaire. Les
causes réelles d'incident sont décrits en 6 mots. Les 4 premiers qui
définissent l'organe perturbé et les 2 derniers ce qui a perturbé l'organe. Le tout s'articule un peu à la manière des parents.enfants de la programmationn orientée objets.

système < produit < élément < composant < lien composant perturbateur > perturbateur < phénomène


6 tables ont été crées : une identifiant numérique, le nom en
français, le nom en néerlandais et un lien vers la table parent

Par exemple pour les produits on a : id_produit, f_produit, n_produit
et lnk_système qui sera la foreign key vers la table des systèmes.

La table lien composant perturbateur permet de lier l'organe perturbé à
ce qui le perturbe en évitant des doublons. Par exemple, un contact
électrique interrompu par oxydation peut être le perturbateur de
plusieurs organes



J'ai créé autant d'index qu'il y a de clefs primaires, ma question est :

- pour accélérer la navigation dans la structure faut-il créer des index asc et desc;

- je souhaite l'affichage des données par ordre alphabétique. Par exemple : il y a un order by f_produit.

est-il nécessaire de créer des index sur les noms et si oui en asc et desc?

- trop d'index ne rsique t'il pas d'alourdir la tâche du serveur ?



Merci de votre aide




Et comme disait ma grand-mère : il y a toujours du soleil derrière les nuages.

Vincent Stryckmans.

3 réponses

aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
20 oct. 2005 à 14:53
salut,

les indexes DESC sont utiles uniquement si tu fait des ORDER BY ... DESC


sa permet d'accelerer la lecture, notemment si tu fait des TOP x (le serveur n'a pas besoin de lire tous les enregistrement pour savoir quels sont les x premiers !)


c'est en général peu utilisé. De plus si tu es sous SQL Server 2000, fait tres attention car un gros bug affecte les index DESC : les données retournées par une requete ne sont pas les bonnes. il faut passer les services packs pour corriger le probleme.


sinon pour ce qui est du nombre d'index :


un index va accelerer la lecture (si il est bien fait), mais va ralentir les insert (il faut que le serveur recalcule les index quand tu fait des insert.)


donc il faut voir pour quel type de requetes tu as besoin de bonnes performances.
3
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
20 oct. 2005 à 14:27
Salut,



Trop d'index rqiue d'alordir le travail du serveur.

Les index sur les clés priamires sont inutiles normalment car indexé par défaut.

Il est intéessant d'index les clés etrangeres et les code fonctionnel (ordre de tri)



Sinon pour les ASC ou DESC, je ne connais pas ce type d'index?



Bon indexage alors.
0
vincentstryckmans Messages postés 228 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 25 octobre 2006
21 oct. 2005 à 07:34
Merci à vous deux pour ces intéressantes et utiles informations.

Et comme disait ma grand-mère : il y a toujours du soleil derrière les nuages.

Vincent Stryckmans.
0
Rejoignez-nous