bonsoir,
lorsque dans une table il y a plusieurs champs sur lesquelles des
applications clientes font souvent des recherches, quelle méthodologie
il
appliquer ?
Par exemple supposons que la table fait plusieurs centaines de milliers
d'enregistrements et que des recherches sont souvent effectuées
sur les champs suivants :
champ1 de type entier
un select count(distinct) de ce champ renvoit 3
champ2 de type entier
un select count(distinct) de ce champ renvoit 300
champ3 de type texte de 5 caractères
un select count(distinct) de ce champ renvoit 10
champ4 de type texte de 30 caractères
un select count(distinct) de ce champ renvoit 5
et enfin
un champ5 de type entier
un select distinct(count) de ce champ renvoit 20
Quels champs faut il indexer en priorité ?
Y a t'il un ordre à respecter ?
Faut il utiliser des index en cluster et des index non clusterisés ?
Merci d'avance pour votre aide.
Srmt
thierry
bonsoir,
lorsque dans une table il y a plusieurs champs sur lesquelles des
applications clientes font souvent des recherches, quelle méthodologie
il
appliquer ?
Par exemple supposons que la table fait plusieurs centaines de milliers
d'enregistrements et que des recherches sont souvent effectuées
sur les champs suivants :
champ1 de type entier
un select count(distinct) de ce champ renvoit 3
champ2 de type entier
un select count(distinct) de ce champ renvoit 300
champ3 de type texte de 5 caractères
un select count(distinct) de ce champ renvoit 10
champ4 de type texte de 30 caractères
un select count(distinct) de ce champ renvoit 5
et enfin
un champ5 de type entier
un select distinct(count) de ce champ renvoit 20
Quels champs faut il indexer en priorité ?
Y a t'il un ordre à respecter ?
Faut il utiliser des index en cluster et des index non clusterisés ?
Merci d'avance pour votre aide.
Srmt
thierry
bonsoir,
lorsque dans une table il y a plusieurs champs sur lesquelles des
applications clientes font souvent des recherches, quelle méthodologie
il
appliquer ?
Par exemple supposons que la table fait plusieurs centaines de milliers
d'enregistrements et que des recherches sont souvent effectuées
sur les champs suivants :
champ1 de type entier
un select count(distinct) de ce champ renvoit 3
champ2 de type entier
un select count(distinct) de ce champ renvoit 300
champ3 de type texte de 5 caractères
un select count(distinct) de ce champ renvoit 10
champ4 de type texte de 30 caractères
un select count(distinct) de ce champ renvoit 5
et enfin
un champ5 de type entier
un select distinct(count) de ce champ renvoit 20
Quels champs faut il indexer en priorité ?
Y a t'il un ordre à respecter ?
Faut il utiliser des index en cluster et des index non clusterisés ?
Merci d'avance pour votre aide.
Srmt
thierry
Bonjour,
pour l'accès à l'enregistrement : plutôt index clusterisé
pour l'accès à la clé d'un enregistrement : plutôt index non clusterisé
Si l'index est multi colonne : déclarer la colonne la plus discriminente
premier
pour illustrer ton exemple :
select champ1, champ2, champ3, champ4, champ5
from table
where champ1 = val1
and champ1 = val2
and champ1 = val3
and champ1 = val4
and champ5 = val5
group by champ1, champ2, champ3, champ4, champ5
ou
select champ1, champ2, champ3, champ4, champ5
from table
group by champ1, champ2, champ3, champ4, champ5
==> index non cluster sur champ2, champ3, champ5, champ4, champ1
dans ce cas tu ne balaies que l'index, la colonne la plus discriminente
en premier donc peu ou pas de balayage de l'index
select champ1, champ2, champ3, champ4, champ5, max(champ6),
sum(champ7+champ8)
from table
where champ1 = val1
and champ1 = val2
and champ1 = val3
and champ1 = val4
and champ5 = val5
group by champ1, champ2, champ3, champ4, champ5
ou
select champ1, champ2, champ3, champ4, champ5, max(champ6),
sum(champ7+champ8)
from table
group by champ1, champ2, champ3, champ4, champ5
==> index cluster sur champ2, champ3, champ5, champ4, champ1
dans ce cas tu es obligé de balayer les données donc l'index clusterisé
indiqué, le nombre d'IO sera relativement faible, on conserve le principe
colonne la plus discriminente en premier (dans l'index) pour plus de
séléctivité.
Cordialement,
LionelP
"Thierry" wrote in message
news:3fff202e$0$17135$
> bonsoir,
>
> lorsque dans une table il y a plusieurs champs sur lesquelles des
> applications clientes font souvent des recherches, quelle méthodologie
faut
> il
> appliquer ?
> Par exemple supposons que la table fait plusieurs centaines de milliers
> d'enregistrements et que des recherches sont souvent effectuées
> sur les champs suivants :
>
> champ1 de type entier
> un select count(distinct) de ce champ renvoit 3
> champ2 de type entier
> un select count(distinct) de ce champ renvoit 300
> champ3 de type texte de 5 caractères
> un select count(distinct) de ce champ renvoit 10
> champ4 de type texte de 30 caractères
> un select count(distinct) de ce champ renvoit 5
> et enfin
> un champ5 de type entier
> un select distinct(count) de ce champ renvoit 20
>
> Quels champs faut il indexer en priorité ?
> Y a t'il un ordre à respecter ?
> Faut il utiliser des index en cluster et des index non clusterisés ?
>
> Merci d'avance pour votre aide.
> Srmt
> thierry
>
>
Bonjour,
pour l'accès à l'enregistrement : plutôt index clusterisé
pour l'accès à la clé d'un enregistrement : plutôt index non clusterisé
Si l'index est multi colonne : déclarer la colonne la plus discriminente
premier
pour illustrer ton exemple :
select champ1, champ2, champ3, champ4, champ5
from table
where champ1 = val1
and champ1 = val2
and champ1 = val3
and champ1 = val4
and champ5 = val5
group by champ1, champ2, champ3, champ4, champ5
ou
select champ1, champ2, champ3, champ4, champ5
from table
group by champ1, champ2, champ3, champ4, champ5
==> index non cluster sur champ2, champ3, champ5, champ4, champ1
dans ce cas tu ne balaies que l'index, la colonne la plus discriminente
en premier donc peu ou pas de balayage de l'index
select champ1, champ2, champ3, champ4, champ5, max(champ6),
sum(champ7+champ8)
from table
where champ1 = val1
and champ1 = val2
and champ1 = val3
and champ1 = val4
and champ5 = val5
group by champ1, champ2, champ3, champ4, champ5
ou
select champ1, champ2, champ3, champ4, champ5, max(champ6),
sum(champ7+champ8)
from table
group by champ1, champ2, champ3, champ4, champ5
==> index cluster sur champ2, champ3, champ5, champ4, champ1
dans ce cas tu es obligé de balayer les données donc l'index clusterisé
indiqué, le nombre d'IO sera relativement faible, on conserve le principe
colonne la plus discriminente en premier (dans l'index) pour plus de
séléctivité.
Cordialement,
LionelP
"Thierry" <thierry@nospam.com> wrote in message
news:3fff202e$0$17135$626a54ce@news.free.fr...
> bonsoir,
>
> lorsque dans une table il y a plusieurs champs sur lesquelles des
> applications clientes font souvent des recherches, quelle méthodologie
faut
> il
> appliquer ?
> Par exemple supposons que la table fait plusieurs centaines de milliers
> d'enregistrements et que des recherches sont souvent effectuées
> sur les champs suivants :
>
> champ1 de type entier
> un select count(distinct) de ce champ renvoit 3
> champ2 de type entier
> un select count(distinct) de ce champ renvoit 300
> champ3 de type texte de 5 caractères
> un select count(distinct) de ce champ renvoit 10
> champ4 de type texte de 30 caractères
> un select count(distinct) de ce champ renvoit 5
> et enfin
> un champ5 de type entier
> un select distinct(count) de ce champ renvoit 20
>
> Quels champs faut il indexer en priorité ?
> Y a t'il un ordre à respecter ?
> Faut il utiliser des index en cluster et des index non clusterisés ?
>
> Merci d'avance pour votre aide.
> Srmt
> thierry
>
>
Bonjour,
pour l'accès à l'enregistrement : plutôt index clusterisé
pour l'accès à la clé d'un enregistrement : plutôt index non clusterisé
Si l'index est multi colonne : déclarer la colonne la plus discriminente
premier
pour illustrer ton exemple :
select champ1, champ2, champ3, champ4, champ5
from table
where champ1 = val1
and champ1 = val2
and champ1 = val3
and champ1 = val4
and champ5 = val5
group by champ1, champ2, champ3, champ4, champ5
ou
select champ1, champ2, champ3, champ4, champ5
from table
group by champ1, champ2, champ3, champ4, champ5
==> index non cluster sur champ2, champ3, champ5, champ4, champ1
dans ce cas tu ne balaies que l'index, la colonne la plus discriminente
en premier donc peu ou pas de balayage de l'index
select champ1, champ2, champ3, champ4, champ5, max(champ6),
sum(champ7+champ8)
from table
where champ1 = val1
and champ1 = val2
and champ1 = val3
and champ1 = val4
and champ5 = val5
group by champ1, champ2, champ3, champ4, champ5
ou
select champ1, champ2, champ3, champ4, champ5, max(champ6),
sum(champ7+champ8)
from table
group by champ1, champ2, champ3, champ4, champ5
==> index cluster sur champ2, champ3, champ5, champ4, champ1
dans ce cas tu es obligé de balayer les données donc l'index clusterisé
indiqué, le nombre d'IO sera relativement faible, on conserve le principe
colonne la plus discriminente en premier (dans l'index) pour plus de
séléctivité.
Cordialement,
LionelP
"Thierry" wrote in message
news:3fff202e$0$17135$
> bonsoir,
>
> lorsque dans une table il y a plusieurs champs sur lesquelles des
> applications clientes font souvent des recherches, quelle méthodologie
faut
> il
> appliquer ?
> Par exemple supposons que la table fait plusieurs centaines de milliers
> d'enregistrements et que des recherches sont souvent effectuées
> sur les champs suivants :
>
> champ1 de type entier
> un select count(distinct) de ce champ renvoit 3
> champ2 de type entier
> un select count(distinct) de ce champ renvoit 300
> champ3 de type texte de 5 caractères
> un select count(distinct) de ce champ renvoit 10
> champ4 de type texte de 30 caractères
> un select count(distinct) de ce champ renvoit 5
> et enfin
> un champ5 de type entier
> un select distinct(count) de ce champ renvoit 20
>
> Quels champs faut il indexer en priorité ?
> Y a t'il un ordre à respecter ?
> Faut il utiliser des index en cluster et des index non clusterisés ?
>
> Merci d'avance pour votre aide.
> Srmt
> thierry
>
>
merci pour ces explications.
Aurais tu des liens à me conseiller pour approfondir ces notions ?
merci d'avance.
srmt
thierry
"lionelp" a écrit dans le message de
news:40027fd2$
> Bonjour,
>
> pour l'accès à l'enregistrement : plutôt index clusterisé
> pour l'accès à la clé d'un enregistrement : plutôt index non clusterisé
> Si l'index est multi colonne : déclarer la colonne la plus discriminente
en
> premier
>
> pour illustrer ton exemple :
> select champ1, champ2, champ3, champ4, champ5
> from table
> where champ1 = val1
> and champ1 = val2
> and champ1 = val3
> and champ1 = val4
> and champ5 = val5
> group by champ1, champ2, champ3, champ4, champ5
> ou
> select champ1, champ2, champ3, champ4, champ5
> from table
> group by champ1, champ2, champ3, champ4, champ5
> ==> index non cluster sur champ2, champ3, champ5, champ4, champ1
>
> dans ce cas tu ne balaies que l'index, la colonne la plus discriminente
est
> en premier donc peu ou pas de balayage de l'index
>
> select champ1, champ2, champ3, champ4, champ5, max(champ6),
> sum(champ7+champ8)
> from table
> where champ1 = val1
> and champ1 = val2
> and champ1 = val3
> and champ1 = val4
> and champ5 = val5
> group by champ1, champ2, champ3, champ4, champ5
> ou
> select champ1, champ2, champ3, champ4, champ5, max(champ6),
> sum(champ7+champ8)
> from table
> group by champ1, champ2, champ3, champ4, champ5
> ==> index cluster sur champ2, champ3, champ5, champ4, champ1
> dans ce cas tu es obligé de balayer les données donc l'index clusterisé
est
> indiqué, le nombre d'IO sera relativement faible, on conserve le
> colonne la plus discriminente en premier (dans l'index) pour plus de
> séléctivité.
>
>
> Cordialement,
> LionelP
>
>
> "Thierry" wrote in message
> news:3fff202e$0$17135$
> > bonsoir,
> >
> > lorsque dans une table il y a plusieurs champs sur lesquelles des
> > applications clientes font souvent des recherches, quelle méthodologie
> faut
> > il
> > appliquer ?
> > Par exemple supposons que la table fait plusieurs centaines de
> > d'enregistrements et que des recherches sont souvent effectuées
> > sur les champs suivants :
> >
> > champ1 de type entier
> > un select count(distinct) de ce champ renvoit 3
> > champ2 de type entier
> > un select count(distinct) de ce champ renvoit 300
> > champ3 de type texte de 5 caractères
> > un select count(distinct) de ce champ renvoit 10
> > champ4 de type texte de 30 caractères
> > un select count(distinct) de ce champ renvoit 5
> > et enfin
> > un champ5 de type entier
> > un select distinct(count) de ce champ renvoit 20
> >
> > Quels champs faut il indexer en priorité ?
> > Y a t'il un ordre à respecter ?
> > Faut il utiliser des index en cluster et des index non clusterisés ?
> >
> > Merci d'avance pour votre aide.
> > Srmt
> > thierry
> >
> >
>
>
merci pour ces explications.
Aurais tu des liens à me conseiller pour approfondir ces notions ?
merci d'avance.
srmt
thierry
"lionelp" <lionelp@microsoft.rem.ove.com> a écrit dans le message de
news:40027fd2$1@news.microsoft.com...
> Bonjour,
>
> pour l'accès à l'enregistrement : plutôt index clusterisé
> pour l'accès à la clé d'un enregistrement : plutôt index non clusterisé
> Si l'index est multi colonne : déclarer la colonne la plus discriminente
en
> premier
>
> pour illustrer ton exemple :
> select champ1, champ2, champ3, champ4, champ5
> from table
> where champ1 = val1
> and champ1 = val2
> and champ1 = val3
> and champ1 = val4
> and champ5 = val5
> group by champ1, champ2, champ3, champ4, champ5
> ou
> select champ1, champ2, champ3, champ4, champ5
> from table
> group by champ1, champ2, champ3, champ4, champ5
> ==> index non cluster sur champ2, champ3, champ5, champ4, champ1
>
> dans ce cas tu ne balaies que l'index, la colonne la plus discriminente
est
> en premier donc peu ou pas de balayage de l'index
>
> select champ1, champ2, champ3, champ4, champ5, max(champ6),
> sum(champ7+champ8)
> from table
> where champ1 = val1
> and champ1 = val2
> and champ1 = val3
> and champ1 = val4
> and champ5 = val5
> group by champ1, champ2, champ3, champ4, champ5
> ou
> select champ1, champ2, champ3, champ4, champ5, max(champ6),
> sum(champ7+champ8)
> from table
> group by champ1, champ2, champ3, champ4, champ5
> ==> index cluster sur champ2, champ3, champ5, champ4, champ1
> dans ce cas tu es obligé de balayer les données donc l'index clusterisé
est
> indiqué, le nombre d'IO sera relativement faible, on conserve le
> colonne la plus discriminente en premier (dans l'index) pour plus de
> séléctivité.
>
>
> Cordialement,
> LionelP
>
>
> "Thierry" <thierry@nospam.com> wrote in message
> news:3fff202e$0$17135$626a54ce@news.free.fr...
> > bonsoir,
> >
> > lorsque dans une table il y a plusieurs champs sur lesquelles des
> > applications clientes font souvent des recherches, quelle méthodologie
> faut
> > il
> > appliquer ?
> > Par exemple supposons que la table fait plusieurs centaines de
> > d'enregistrements et que des recherches sont souvent effectuées
> > sur les champs suivants :
> >
> > champ1 de type entier
> > un select count(distinct) de ce champ renvoit 3
> > champ2 de type entier
> > un select count(distinct) de ce champ renvoit 300
> > champ3 de type texte de 5 caractères
> > un select count(distinct) de ce champ renvoit 10
> > champ4 de type texte de 30 caractères
> > un select count(distinct) de ce champ renvoit 5
> > et enfin
> > un champ5 de type entier
> > un select distinct(count) de ce champ renvoit 20
> >
> > Quels champs faut il indexer en priorité ?
> > Y a t'il un ordre à respecter ?
> > Faut il utiliser des index en cluster et des index non clusterisés ?
> >
> > Merci d'avance pour votre aide.
> > Srmt
> > thierry
> >
> >
>
>
merci pour ces explications.
Aurais tu des liens à me conseiller pour approfondir ces notions ?
merci d'avance.
srmt
thierry
"lionelp" a écrit dans le message de
news:40027fd2$
> Bonjour,
>
> pour l'accès à l'enregistrement : plutôt index clusterisé
> pour l'accès à la clé d'un enregistrement : plutôt index non clusterisé
> Si l'index est multi colonne : déclarer la colonne la plus discriminente
en
> premier
>
> pour illustrer ton exemple :
> select champ1, champ2, champ3, champ4, champ5
> from table
> where champ1 = val1
> and champ1 = val2
> and champ1 = val3
> and champ1 = val4
> and champ5 = val5
> group by champ1, champ2, champ3, champ4, champ5
> ou
> select champ1, champ2, champ3, champ4, champ5
> from table
> group by champ1, champ2, champ3, champ4, champ5
> ==> index non cluster sur champ2, champ3, champ5, champ4, champ1
>
> dans ce cas tu ne balaies que l'index, la colonne la plus discriminente
est
> en premier donc peu ou pas de balayage de l'index
>
> select champ1, champ2, champ3, champ4, champ5, max(champ6),
> sum(champ7+champ8)
> from table
> where champ1 = val1
> and champ1 = val2
> and champ1 = val3
> and champ1 = val4
> and champ5 = val5
> group by champ1, champ2, champ3, champ4, champ5
> ou
> select champ1, champ2, champ3, champ4, champ5, max(champ6),
> sum(champ7+champ8)
> from table
> group by champ1, champ2, champ3, champ4, champ5
> ==> index cluster sur champ2, champ3, champ5, champ4, champ1
> dans ce cas tu es obligé de balayer les données donc l'index clusterisé
est
> indiqué, le nombre d'IO sera relativement faible, on conserve le
> colonne la plus discriminente en premier (dans l'index) pour plus de
> séléctivité.
>
>
> Cordialement,
> LionelP
>
>
> "Thierry" wrote in message
> news:3fff202e$0$17135$
> > bonsoir,
> >
> > lorsque dans une table il y a plusieurs champs sur lesquelles des
> > applications clientes font souvent des recherches, quelle méthodologie
> faut
> > il
> > appliquer ?
> > Par exemple supposons que la table fait plusieurs centaines de
> > d'enregistrements et que des recherches sont souvent effectuées
> > sur les champs suivants :
> >
> > champ1 de type entier
> > un select count(distinct) de ce champ renvoit 3
> > champ2 de type entier
> > un select count(distinct) de ce champ renvoit 300
> > champ3 de type texte de 5 caractères
> > un select count(distinct) de ce champ renvoit 10
> > champ4 de type texte de 30 caractères
> > un select count(distinct) de ce champ renvoit 5
> > et enfin
> > un champ5 de type entier
> > un select distinct(count) de ce champ renvoit 20
> >
> > Quels champs faut il indexer en priorité ?
> > Y a t'il un ordre à respecter ?
> > Faut il utiliser des index en cluster et des index non clusterisés ?
> >
> > Merci d'avance pour votre aide.
> > Srmt
> > thierry
> >
> >
>
>
Bonjour,
Il y a le lien suivant qui est un bon point de départ :
Cordialement,
LionelP
"Thierry" wrote in message
news:4002c3e1$0$17131$
> merci pour ces explications.
> Aurais tu des liens à me conseiller pour approfondir ces notions ?
>
> merci d'avance.
> srmt
> thierry
>
> "lionelp" a écrit dans le message de
> news:40027fd2$
> > Bonjour,
> >
> > pour l'accès à l'enregistrement : plutôt index clusterisé
> > pour l'accès à la clé d'un enregistrement : plutôt index non
> > Si l'index est multi colonne : déclarer la colonne la plus
> en
> > premier
> >
> > pour illustrer ton exemple :
> > select champ1, champ2, champ3, champ4, champ5
> > from table
> > where champ1 = val1
> > and champ1 = val2
> > and champ1 = val3
> > and champ1 = val4
> > and champ5 = val5
> > group by champ1, champ2, champ3, champ4, champ5
> > ou
> > select champ1, champ2, champ3, champ4, champ5
> > from table
> > group by champ1, champ2, champ3, champ4, champ5
> > ==> index non cluster sur champ2, champ3, champ5, champ4, champ1
> >
> > dans ce cas tu ne balaies que l'index, la colonne la plus
> est
> > en premier donc peu ou pas de balayage de l'index
> >
> > select champ1, champ2, champ3, champ4, champ5, max(champ6),
> > sum(champ7+champ8)
> > from table
> > where champ1 = val1
> > and champ1 = val2
> > and champ1 = val3
> > and champ1 = val4
> > and champ5 = val5
> > group by champ1, champ2, champ3, champ4, champ5
> > ou
> > select champ1, champ2, champ3, champ4, champ5, max(champ6),
> > sum(champ7+champ8)
> > from table
> > group by champ1, champ2, champ3, champ4, champ5
> > ==> index cluster sur champ2, champ3, champ5, champ4, champ1
> > dans ce cas tu es obligé de balayer les données donc l'index
> est
> > indiqué, le nombre d'IO sera relativement faible, on conserve le
principe
> > colonne la plus discriminente en premier (dans l'index) pour plus de
> > séléctivité.
> >
> >
> > Cordialement,
> > LionelP
> >
> >
> > "Thierry" wrote in message
> > news:3fff202e$0$17135$
> > > bonsoir,
> > >
> > > lorsque dans une table il y a plusieurs champs sur lesquelles des
> > > applications clientes font souvent des recherches, quelle
> > faut
> > > il
> > > appliquer ?
> > > Par exemple supposons que la table fait plusieurs centaines de
milliers
> > > d'enregistrements et que des recherches sont souvent effectuées
> > > sur les champs suivants :
> > >
> > > champ1 de type entier
> > > un select count(distinct) de ce champ renvoit 3
> > > champ2 de type entier
> > > un select count(distinct) de ce champ renvoit 300
> > > champ3 de type texte de 5 caractères
> > > un select count(distinct) de ce champ renvoit 10
> > > champ4 de type texte de 30 caractères
> > > un select count(distinct) de ce champ renvoit 5
> > > et enfin
> > > un champ5 de type entier
> > > un select distinct(count) de ce champ renvoit 20
> > >
> > > Quels champs faut il indexer en priorité ?
> > > Y a t'il un ordre à respecter ?
> > > Faut il utiliser des index en cluster et des index non clusterisés ?
> > >
> > > Merci d'avance pour votre aide.
> > > Srmt
> > > thierry
> > >
> > >
> >
> >
>
>
Bonjour,
Il y a le lien suivant qui est un bon point de départ :
Cordialement,
LionelP
"Thierry" <thierry@nospam.com> wrote in message
news:4002c3e1$0$17131$626a54ce@news.free.fr...
> merci pour ces explications.
> Aurais tu des liens à me conseiller pour approfondir ces notions ?
>
> merci d'avance.
> srmt
> thierry
>
> "lionelp" <lionelp@microsoft.rem.ove.com> a écrit dans le message de
> news:40027fd2$1@news.microsoft.com...
> > Bonjour,
> >
> > pour l'accès à l'enregistrement : plutôt index clusterisé
> > pour l'accès à la clé d'un enregistrement : plutôt index non
> > Si l'index est multi colonne : déclarer la colonne la plus
> en
> > premier
> >
> > pour illustrer ton exemple :
> > select champ1, champ2, champ3, champ4, champ5
> > from table
> > where champ1 = val1
> > and champ1 = val2
> > and champ1 = val3
> > and champ1 = val4
> > and champ5 = val5
> > group by champ1, champ2, champ3, champ4, champ5
> > ou
> > select champ1, champ2, champ3, champ4, champ5
> > from table
> > group by champ1, champ2, champ3, champ4, champ5
> > ==> index non cluster sur champ2, champ3, champ5, champ4, champ1
> >
> > dans ce cas tu ne balaies que l'index, la colonne la plus
> est
> > en premier donc peu ou pas de balayage de l'index
> >
> > select champ1, champ2, champ3, champ4, champ5, max(champ6),
> > sum(champ7+champ8)
> > from table
> > where champ1 = val1
> > and champ1 = val2
> > and champ1 = val3
> > and champ1 = val4
> > and champ5 = val5
> > group by champ1, champ2, champ3, champ4, champ5
> > ou
> > select champ1, champ2, champ3, champ4, champ5, max(champ6),
> > sum(champ7+champ8)
> > from table
> > group by champ1, champ2, champ3, champ4, champ5
> > ==> index cluster sur champ2, champ3, champ5, champ4, champ1
> > dans ce cas tu es obligé de balayer les données donc l'index
> est
> > indiqué, le nombre d'IO sera relativement faible, on conserve le
principe
> > colonne la plus discriminente en premier (dans l'index) pour plus de
> > séléctivité.
> >
> >
> > Cordialement,
> > LionelP
> >
> >
> > "Thierry" <thierry@nospam.com> wrote in message
> > news:3fff202e$0$17135$626a54ce@news.free.fr...
> > > bonsoir,
> > >
> > > lorsque dans une table il y a plusieurs champs sur lesquelles des
> > > applications clientes font souvent des recherches, quelle
> > faut
> > > il
> > > appliquer ?
> > > Par exemple supposons que la table fait plusieurs centaines de
milliers
> > > d'enregistrements et que des recherches sont souvent effectuées
> > > sur les champs suivants :
> > >
> > > champ1 de type entier
> > > un select count(distinct) de ce champ renvoit 3
> > > champ2 de type entier
> > > un select count(distinct) de ce champ renvoit 300
> > > champ3 de type texte de 5 caractères
> > > un select count(distinct) de ce champ renvoit 10
> > > champ4 de type texte de 30 caractères
> > > un select count(distinct) de ce champ renvoit 5
> > > et enfin
> > > un champ5 de type entier
> > > un select distinct(count) de ce champ renvoit 20
> > >
> > > Quels champs faut il indexer en priorité ?
> > > Y a t'il un ordre à respecter ?
> > > Faut il utiliser des index en cluster et des index non clusterisés ?
> > >
> > > Merci d'avance pour votre aide.
> > > Srmt
> > > thierry
> > >
> > >
> >
> >
>
>
Bonjour,
Il y a le lien suivant qui est un bon point de départ :
Cordialement,
LionelP
"Thierry" wrote in message
news:4002c3e1$0$17131$
> merci pour ces explications.
> Aurais tu des liens à me conseiller pour approfondir ces notions ?
>
> merci d'avance.
> srmt
> thierry
>
> "lionelp" a écrit dans le message de
> news:40027fd2$
> > Bonjour,
> >
> > pour l'accès à l'enregistrement : plutôt index clusterisé
> > pour l'accès à la clé d'un enregistrement : plutôt index non
> > Si l'index est multi colonne : déclarer la colonne la plus
> en
> > premier
> >
> > pour illustrer ton exemple :
> > select champ1, champ2, champ3, champ4, champ5
> > from table
> > where champ1 = val1
> > and champ1 = val2
> > and champ1 = val3
> > and champ1 = val4
> > and champ5 = val5
> > group by champ1, champ2, champ3, champ4, champ5
> > ou
> > select champ1, champ2, champ3, champ4, champ5
> > from table
> > group by champ1, champ2, champ3, champ4, champ5
> > ==> index non cluster sur champ2, champ3, champ5, champ4, champ1
> >
> > dans ce cas tu ne balaies que l'index, la colonne la plus
> est
> > en premier donc peu ou pas de balayage de l'index
> >
> > select champ1, champ2, champ3, champ4, champ5, max(champ6),
> > sum(champ7+champ8)
> > from table
> > where champ1 = val1
> > and champ1 = val2
> > and champ1 = val3
> > and champ1 = val4
> > and champ5 = val5
> > group by champ1, champ2, champ3, champ4, champ5
> > ou
> > select champ1, champ2, champ3, champ4, champ5, max(champ6),
> > sum(champ7+champ8)
> > from table
> > group by champ1, champ2, champ3, champ4, champ5
> > ==> index cluster sur champ2, champ3, champ5, champ4, champ1
> > dans ce cas tu es obligé de balayer les données donc l'index
> est
> > indiqué, le nombre d'IO sera relativement faible, on conserve le
principe
> > colonne la plus discriminente en premier (dans l'index) pour plus de
> > séléctivité.
> >
> >
> > Cordialement,
> > LionelP
> >
> >
> > "Thierry" wrote in message
> > news:3fff202e$0$17135$
> > > bonsoir,
> > >
> > > lorsque dans une table il y a plusieurs champs sur lesquelles des
> > > applications clientes font souvent des recherches, quelle
> > faut
> > > il
> > > appliquer ?
> > > Par exemple supposons que la table fait plusieurs centaines de
milliers
> > > d'enregistrements et que des recherches sont souvent effectuées
> > > sur les champs suivants :
> > >
> > > champ1 de type entier
> > > un select count(distinct) de ce champ renvoit 3
> > > champ2 de type entier
> > > un select count(distinct) de ce champ renvoit 300
> > > champ3 de type texte de 5 caractères
> > > un select count(distinct) de ce champ renvoit 10
> > > champ4 de type texte de 30 caractères
> > > un select count(distinct) de ce champ renvoit 5
> > > et enfin
> > > un champ5 de type entier
> > > un select distinct(count) de ce champ renvoit 20
> > >
> > > Quels champs faut il indexer en priorité ?
> > > Y a t'il un ordre à respecter ?
> > > Faut il utiliser des index en cluster et des index non clusterisés ?
> > >
> > > Merci d'avance pour votre aide.
> > > Srmt
> > > thierry
> > >
> > >
> >
> >
>
>