OVH Cloud OVH Cloud

Histoire d'index

5 réponses
Avatar
Nathan NAU
Bonjour

Je me pose plusieurs questions sur les index.

J'ai lu dans un livre que :
sur une table t
si j'index les colonne a, b, et c
l'index cera utilisé si la clause WHERE contient :
(a AND b AND c), ou (a AND b), ou a
mais de par le principe d'arbre binaire utiliser
je me demande si l'index est aussi utilise si je fais un WHERE a ?

de plus dans mon cas je doit faire un
WHERE a=2 AND b>5 AND c<7
donc comment me conseillez vous de creer mon ou mais index ?
un index sur a, un index sur b, et un index sur c
ou
un index sur a, b et c
ou
un index sur a et b

Merci pour vos conseil

Nathan

5 réponses

Avatar
Philippe T [MS]
Bonjour,

Oui si l'index contient a,b,c il sera aussi utilisé si l'on ne fait une
clause WHERE sur la colonne a.

Dans votre cas, un index sur a,b,c est a mon avis approprié.

Phil.
________________________________________________________
Philippe TROTIN
Microsoft Services France http://www.microsoft.com/france
"Nathan NAU" wrote in message
news:
Bonjour

Je me pose plusieurs questions sur les index.

J'ai lu dans un livre que :
sur une table t
si j'index les colonne a, b, et c
l'index cera utilisé si la clause WHERE contient :
(a AND b AND c), ou (a AND b), ou a
mais de par le principe d'arbre binaire utiliser
je me demande si l'index est aussi utilise si je fais un WHERE a ?

de plus dans mon cas je doit faire un
WHERE a=2 AND b>5 AND c<7
donc comment me conseillez vous de creer mon ou mais index ?
un index sur a, un index sur b, et un index sur c
ou
un index sur a, b et c
ou
un index sur a et b

Merci pour vos conseil

Nathan







Avatar
Nathan NAU
Excusez moi,
j'ai fait une erreur de frappe.
Je voulais dire sur une clause WHERE c et non sur a

"Philippe T [MS]" a écrit dans le message de
news:
Bonjour,

Oui si l'index contient a,b,c il sera aussi utilisé si l'on ne fait une
clause WHERE sur la colonne a.

Dans votre cas, un index sur a,b,c est a mon avis approprié.

Phil.
________________________________________________________
Philippe TROTIN
Microsoft Services France http://www.microsoft.com/france
"Nathan NAU" wrote in message
news:
Bonjour

Je me pose plusieurs questions sur les index.

J'ai lu dans un livre que :
sur une table t
si j'index les colonne a, b, et c
l'index cera utilisé si la clause WHERE contient :
(a AND b AND c), ou (a AND b), ou a
mais de par le principe d'arbre binaire utiliser
je me demande si l'index est aussi utilise si je fais un WHERE a ?

de plus dans mon cas je doit faire un
WHERE a=2 AND b>5 AND c<7
donc comment me conseillez vous de creer mon ou mais index ?
un index sur a, un index sur b, et un index sur c
ou
un index sur a, b et c
ou
un index sur a et b

Merci pour vos conseil

Nathan











Avatar
SQLpro [MVP]
Nathan NAU a écrit :
Excusez moi,
j'ai fait une erreur de frappe.
Je voulais dire sur une clause WHERE c et non sur a



Dans ce cas l'index ne sera pas utilisé car les données d'un index sont
concaténées

A +


"Philippe T [MS]" a écrit dans le message de
news:
Bonjour,

Oui si l'index contient a,b,c il sera aussi utilisé si l'on ne fait une
clause WHERE sur la colonne a.

Dans votre cas, un index sur a,b,c est a mon avis approprié.

Phil.
________________________________________________________
Philippe TROTIN
Microsoft Services France http://www.microsoft.com/france
"Nathan NAU" wrote in message
news:
Bonjour

Je me pose plusieurs questions sur les index.

J'ai lu dans un livre que :
sur une table t
si j'index les colonne a, b, et c
l'index cera utilisé si la clause WHERE contient :
(a AND b AND c), ou (a AND b), ou a
mais de par le principe d'arbre binaire utiliser
je me demande si l'index est aussi utilise si je fais un WHERE a ?

de plus dans mon cas je doit faire un
WHERE a=2 AND b>5 AND c<7
donc comment me conseillez vous de creer mon ou mais index ?
un index sur a, un index sur b, et un index sur c
ou
un index sur a, b et c
ou
un index sur a et b

Merci pour vos conseil

Nathan
















--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Avatar
Philippe T [MS]
Bonjour,

Effectivement dans ces conditions, il faut étudier le besoin de création
d'un index sur la colonne c.

Phil.
________________________________________________________
Philippe TROTIN
Microsoft Services France http://www.microsoft.com/france
"SQLpro [MVP]" wrote in message
news:
Nathan NAU a écrit :
Excusez moi,
j'ai fait une erreur de frappe.
Je voulais dire sur une clause WHERE c et non sur a



Dans ce cas l'index ne sera pas utilisé car les données d'un index sont
concaténées

A +


"Philippe T [MS]" a écrit dans le message
de news:
Bonjour,

Oui si l'index contient a,b,c il sera aussi utilisé si l'on ne fait une
clause WHERE sur la colonne a.

Dans votre cas, un index sur a,b,c est a mon avis approprié.

Phil.
________________________________________________________
Philippe TROTIN
Microsoft Services France http://www.microsoft.com/france
"Nathan NAU" wrote in message
news:
Bonjour

Je me pose plusieurs questions sur les index.

J'ai lu dans un livre que :
sur une table t
si j'index les colonne a, b, et c
l'index cera utilisé si la clause WHERE contient :
(a AND b AND c), ou (a AND b), ou a
mais de par le principe d'arbre binaire utiliser
je me demande si l'index est aussi utilise si je fais un WHERE a ?

de plus dans mon cas je doit faire un
WHERE a=2 AND b>5 AND c<7
donc comment me conseillez vous de creer mon ou mais index ?
un index sur a, un index sur b, et un index sur c
ou
un index sur a, b et c
ou
un index sur a et b

Merci pour vos conseil

Nathan
















--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************


Avatar
Med Bouchenafa
SQL Server est capable d'utiliser simultanement les trois index pour rèsoudre
ta requête.
Mais bon, comme plusieurs autres paramètres peuvent entrer en concurrence,
je te conseille de te faire un essai avec l'assistant création d'index. Il
pourra te mettre sur la bonne piste

--
Bien Cordialement
Med Bouchenafa


"Nathan NAU" wrote:

Bonjour

Je me pose plusieurs questions sur les index.

J'ai lu dans un livre que :
sur une table t
si j'index les colonne a, b, et c
l'index cera utilisé si la clause WHERE contient :
(a AND b AND c), ou (a AND b), ou a
mais de par le principe d'arbre binaire utiliser
je me demande si l'index est aussi utilise si je fais un WHERE a ?

de plus dans mon cas je doit faire un
WHERE a=2 AND b>5 AND c<7
donc comment me conseillez vous de creer mon ou mais index ?
un index sur a, un index sur b, et un index sur c
ou
un index sur a, b et c
ou
un index sur a et b

Merci pour vos conseil

Nathan