OVH Cloud OVH Cloud

index

3 réponses
Avatar
arnaud
bonjour

sur une table, j'ai mis 3 index.
lors d'une requete sql, quel index est utilisé ?
est-il possible d'en choisir un ?

merci d'avance

arnaud

windows 2K3 / sql SR Std

3 réponses

Avatar
Jean-Nicolas BERGER
Bonjour,
L'index utilisé est dans la grande majorité des cas celui qui permet d'avoir
les meilleures performances.
SQL server fait son choix en fonction des champs utilisés dans la clause
WHERE, dans les jointures, ... en s'appuyant sur les stats existantes.
Toutefois, dans certains cas ultra-particuliers (par exemple pour s'assurer
d'un tri des données retournées avec un SELECT TOP n ... sans pour autant
placer un ORDER BY couteux), il est possible de forcer l'index utilisé
SELECT ... FROM MaTable (INDEX(IndexChoisi)) WHERE ...

JN.

"arnaud" a écrit dans le message de news:
coi7t3$tap$
bonjour

sur une table, j'ai mis 3 index.
lors d'une requete sql, quel index est utilisé ?
est-il possible d'en choisir un ?

merci d'avance

arnaud

windows 2K3 / sql SR Std




Avatar
Philippe T [MS]
Bonjour,

Dans la majorité des cas, il faut éviter de forcer un index. En effet lors
de l'utilisation d'une requête, SQL Server calcul le plan d'exécution de la
requête en se basant sur ses statistiques et en déduit l'index le plus
performant.

Phil.
________________________________________________________
Philippe TROTIN http://blogs.msdn.com/ptrotin
Microsoft Services France http://www.microsoft.com/france

"Jean-Nicolas BERGER" wrote in message
news:
Bonjour,
L'index utilisé est dans la grande majorité des cas celui qui permet


d'avoir
les meilleures performances.
SQL server fait son choix en fonction des champs utilisés dans la clause
WHERE, dans les jointures, ... en s'appuyant sur les stats existantes.
Toutefois, dans certains cas ultra-particuliers (par exemple pour


s'assurer
d'un tri des données retournées avec un SELECT TOP n ... sans pour autant
placer un ORDER BY couteux), il est possible de forcer l'index utilisé
SELECT ... FROM MaTable (INDEX(IndexChoisi)) WHERE ...

JN.

"arnaud" a écrit dans le message de news:
coi7t3$tap$
> bonjour
>
> sur une table, j'ai mis 3 index.
> lors d'une requete sql, quel index est utilisé ?
> est-il possible d'en choisir un ?
>
> merci d'avance
>
> arnaud
>
> windows 2K3 / sql SR Std
>
>




Avatar
arnaud
merci pr vos reponses completes !!
"Philippe T [MS]" a écrit dans le message de
news:
Bonjour,

Dans la majorité des cas, il faut éviter de forcer un index. En effet lors
de l'utilisation d'une requête, SQL Server calcul le plan d'exécution de


la
requête en se basant sur ses statistiques et en déduit l'index le plus
performant.

Phil.
________________________________________________________
Philippe TROTIN http://blogs.msdn.com/ptrotin
Microsoft Services France http://www.microsoft.com/france

"Jean-Nicolas BERGER" wrote in message
news:
> Bonjour,
> L'index utilisé est dans la grande majorité des cas celui qui permet
d'avoir
> les meilleures performances.
> SQL server fait son choix en fonction des champs utilisés dans la clause
> WHERE, dans les jointures, ... en s'appuyant sur les stats existantes.
> Toutefois, dans certains cas ultra-particuliers (par exemple pour
s'assurer
> d'un tri des données retournées avec un SELECT TOP n ... sans pour


autant
> placer un ORDER BY couteux), il est possible de forcer l'index utilisé
> SELECT ... FROM MaTable (INDEX(IndexChoisi)) WHERE ...
>
> JN.
>
> "arnaud" a écrit dans le message de news:
> coi7t3$tap$
> > bonjour
> >
> > sur une table, j'ai mis 3 index.
> > lors d'une requete sql, quel index est utilisé ?
> > est-il possible d'en choisir un ?
> >
> > merci d'avance
> >
> > arnaud
> >
> > windows 2K3 / sql SR Std
> >
> >
>
>