Précédent   Forum des professionnels en informatique > Bases de données > Décisions SGBD
Décisions SGBD Forum de décisions sur le choix en bases de données. Le Comparatif
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/07/2006, 10h16   #1
Invité de passage
 
Inscription : octobre 2002
Messages : 8
Détails du profil
Informations forums :
Inscription : octobre 2002
Messages : 8
Points : 3
Points : 3
Par défaut Index sur plusieurs colonnes

Bonjour,

Soit la table MATABLE (COL_A, COL_B, COL_C, COL_D)

Je créé un index sur les 3 premières colonnes COL_A, COL_B, COL_C.

Les SELECT dont le critère ne porte que sur l'une de ces 3 colonnes utilisent-ils l'index précedent ?
Est-il utile de créer en plus un index sur chaque colonne ?

Merci d'avance
JojoLaFripouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2006, 10h28   #2
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 446
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 446
Points : 7 546
Points : 7 546
Ca dépend de ton SGBD...
La notion d'index est absente de la norme SQL donc chaque éditeur l'implémente à sa manière...
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2006, 15h32   #3
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
Citation:
al1_24 : Ca dépend de ton SGBD...
La notion d'index est absente de la norme SQL donc chaque éditeur l'implémente à sa manière...
A ma connaissance non... Les index multi colonne sont stockées de la même manière quelque soit le SGBDR, par concaténation. C'est une logique pour laquelle il est difficile d'échapper car le but d'un index est l'ordonnancement préventif des données afin d'améliorer les recherches et que pour faire cela, il faut "vectoriser" l'information, ce qui dans le domaine du relationnel revient à concaténer les données.
Cela veut dire en clair que :

soit index sur les colonnes COL_A, COL_B, COL_C, créé comme suit :
CREATE INDEX ... (COL_A, COL_B, COL_C)

les requêtes utilisant l'indexation de cet index seront :

SELECT ... WHERE COL_A = ...
SELECT ... WHERE COL_A = ... AND COL_B = ...
SELECT ... WHERE COL_A = ... AND COL_B = ... AND COL_C = ...

en aucun cas des requêtes comme
SELECT ... WHERE COL_B = ...
SELECT ... WHERE COL_C = ...
SELECT ... WHERE COL_B = ... AND COL_C = ...
SELECT ... WHERE COL_A = ... AND COL_C = ...
ne pourrons faire une recherche dans l'index.

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h16.


 
 
 
 
Partenaires

Hébergement Web