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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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" <l.moreau@systonic.fr> wrote in message
news:blgn6k$th9$1@s1.read.news.oleane.net...
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.
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.
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. > > > >
Ok, merci pour ces éclaircissements.
Merci Lionel
"Lionel Pénuchot" <lionelp@microsoft.remove.com> wrote in message
news:3f7c0e03@news.microsoft.com...
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" <l.moreau@systonic.fr> wrote in message
news:blgn6k$th9$1@s1.read.news.oleane.net...
> 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.
>
>
>
>
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. > > > >