OVH Cloud OVH Cloud

Index: créer juste ce qu'il faut.

2 réponses
Avatar
Laurent Moreau
Bonjour a tous,

Soit une table qui est souvent lue avec dans le WHERE:
- soit A=
- soit B=
- soit A= AND B=

Pour avoir une réponse rapide j'ai créé 3 index:
sur A,
sur B
sur A et B
mais plus il y a d'index plus je pénalise l'écriture...

Je me souviens avoir lu sur le NG un commentaire de quelqu'un qui disait
qu'il etait inutile de créer un index AB, des l'instant ou on a déja un
index sur A et sur B.


Merci pour tout avis, tout commentaire.

Laurent.

2 réponses

Avatar
Lionel Pénuchot
Bonjour,

Effectivement sql server sait fusionner 2 index alors on peut avoir un sur A
et un sur B, pour en avoir le coeur net un set showplan_all on et exécuter
la requête pour voir si les 2 index sont bien pris.
Sinon, si lecture uniquement sur A et sur AB alors une autre solution
consiste à avoir:
1 index sur AB si A est plus discriminant que B (cardinalité de la
colonne/nb total de ligne)

2 index, 1 sur A et 1 sur BA si B plus discriminant que A.


Mais il n'y a que l'usage qui permettra de dire quelle est véritablement la
bone solution, il peut y avoir d'autres facteurs qui ne sont pas pris en
compte.

Cordialement,
LionelP


"Laurent Moreau" wrote in message
news:blgn6k$th9$
Bonjour a tous,

Soit une table qui est souvent lue avec dans le WHERE:
- soit A > - soit B > - soit A= AND B >
Pour avoir une réponse rapide j'ai créé 3 index:
sur A,
sur B
sur A et B
mais plus il y a d'index plus je pénalise l'écriture...

Je me souviens avoir lu sur le NG un commentaire de quelqu'un qui disait
qu'il etait inutile de créer un index AB, des l'instant ou on a déja un
index sur A et sur B.


Merci pour tout avis, tout commentaire.

Laurent.






Avatar
Laurent Moreau
Ok, merci pour ces éclaircissements.

Merci Lionel



"Lionel Pénuchot" wrote in message
news:
Bonjour,

Effectivement sql server sait fusionner 2 index alors on peut avoir un sur


A
et un sur B, pour en avoir le coeur net un set showplan_all on et exécuter
la requête pour voir si les 2 index sont bien pris.
Sinon, si lecture uniquement sur A et sur AB alors une autre solution
consiste à avoir:
1 index sur AB si A est plus discriminant que B (cardinalité de la
colonne/nb total de ligne)

2 index, 1 sur A et 1 sur BA si B plus discriminant que A.


Mais il n'y a que l'usage qui permettra de dire quelle est véritablement


la
bone solution, il peut y avoir d'autres facteurs qui ne sont pas pris en
compte.

Cordialement,
LionelP


"Laurent Moreau" wrote in message
news:blgn6k$th9$
> Bonjour a tous,
>
> Soit une table qui est souvent lue avec dans le WHERE:
> - soit A > > - soit B > > - soit A= AND B > >
> Pour avoir une réponse rapide j'ai créé 3 index:
> sur A,
> sur B
> sur A et B
> mais plus il y a d'index plus je pénalise l'écriture...
>
> Je me souviens avoir lu sur le NG un commentaire de quelqu'un qui disait
> qu'il etait inutile de créer un index AB, des l'instant ou on a déja un
> index sur A et sur B.
>
>
> Merci pour tout avis, tout commentaire.
>
> Laurent.
>
>
>
>