OVH Cloud OVH Cloud

Stat et optimisation

3 réponses
Avatar
Oriane
Bonjour,

une question simple: je vois sur mon cours Sql Server 2000 (dont je =
reviens juste !) que le moteur se sert des statistisques pour optimiser =
les requ=EAtes. Ok mais comment ?

Par ex, lors d'une requ=EAte du style SELECT * FROM table WHERE id =
BETWEEN 1 AND 300, il y 2 possibilit=E9s: un table scan ou alors =
l'utilisation de l'index de ID (s'il existe bien s=FBr). Le table scan =
est choisi si la s=E9lectivit=E9 de la requ=EAte est faible (par =
exemple, s'il n'y a que 400 lignes avec un id diff=E9rent). Comment le =
moteur =E9value-t-il cette s=E9lectivit=E9 ? Avec les stats ?

Merci d'avance de vos r=E9ponses intelligentes ;-))

3 réponses

Avatar
hch
Oui dans le calcul des stats la selectivité est evaluée

il n'y a pas que la selectivité il y a aussi la densité !!

vous pouvez voir ceci avec dbcc showstatistics

SQL server choisi un index ou pas en fonction de la selectivité de ce
dernier et il l'utilise lorsque vraiment il vous fait gagner un bon
pourcentage de nombre de pages a parcourir sinon il reste sur le table scan


"Oriane" a écrit :

Bonjour,

une question simple: je vois sur mon cours Sql Server 2000 (dont je reviens juste !) que le moteur se sert des statistisques pour optimiser les requêtes. Ok mais comment ?

Par ex, lors d'une requête du style SELECT * FROM table WHERE id BETWEEN 1 AND 300, il y 2 possibilités: un table scan ou alors l'utilisation de l'index de ID (s'il existe bien sûr). Le table scan est choisi si la sélectivité de la requête est faible (par exemple, s'il n'y a que 400 lignes avec un id différent). Comment le moteur évalue-t-il cette sélectivité ? Avec les stats ?

Merci d'avance de vos réponses intelligentes ;-))



Avatar
Oriane
Merci de ta réponse. Et c'est koi la densité ?

"hch" a écrit dans le message de news:
Oui dans le calcul des stats la selectivité est evaluée

il n'y a pas que la selectivité il y a aussi la densité !!

vous pouvez voir ceci avec dbcc showstatistics

SQL server choisi un index ou pas en fonction de la selectivité de ce
dernier et il l'utilise lorsque vraiment il vous fait gagner un bon
pourcentage de nombre de pages a parcourir sinon il reste sur le table scan


"Oriane" a écrit :

Bonjour,

une question simple: je vois sur mon cours Sql Server 2000 (dont je reviens juste !) que le moteur se sert des statistisques pour optimiser les requêtes. Ok mais comment ?

Par ex, lors d'une requête du style SELECT * FROM table WHERE id BETWEEN 1 AND 300, il y 2 possibilités: un table scan ou alors l'utilisation de l'index de ID (s'il existe bien sûr). Le table scan est choisi si la sélectivité de la requête est faible (par exemple, s'il n'y a que 400 lignes avec un id différent). Comment le moteur évalue-t-il cette sélectivité ? Avec les stats ?

Merci d'avance de vos réponses intelligentes ;-))





Avatar
lionelp
Bonjour,

La cardinalité = nombre de valeurs uniques de clé = C
La densité = 1/C


Cordialement,
LionelP

"Oriane" a écrit :

Merci de ta réponse. Et c'est koi la densité ?

"hch" a écrit dans le message de news:
> Oui dans le calcul des stats la selectivité est evaluée
>
> il n'y a pas que la selectivité il y a aussi la densité !!
>
> vous pouvez voir ceci avec dbcc showstatistics
>
> SQL server choisi un index ou pas en fonction de la selectivité de ce
> dernier et il l'utilise lorsque vraiment il vous fait gagner un bon
> pourcentage de nombre de pages a parcourir sinon il reste sur le table scan
>
>
> "Oriane" a écrit :
>
>> Bonjour,
>>
>> une question simple: je vois sur mon cours Sql Server 2000 (dont je reviens juste !) que le moteur se sert des statistisques pour optimiser les requêtes. Ok mais comment ?
>>
>> Par ex, lors d'une requête du style SELECT * FROM table WHERE id BETWEEN 1 AND 300, il y 2 possibilités: un table scan ou alors l'utilisation de l'index de ID (s'il existe bien sûr). Le table scan est choisi si la sélectivité de la requête est faible (par exemple, s'il n'y a que 400 lignes avec un id différent). Comment le moteur évalue-t-il cette sélectivité ? Avec les stats ?
>>
>> Merci d'avance de vos réponses intelligentes ;-))
>>