Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Administration
Administration Forum d'entraide sur l'administration du serveur Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/01/2011, 11h00   #1
Membre confirmé
 
Inscription : octobre 2006
Messages : 440
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 440
Points : 222
Points : 222
Par défaut Définition de sélectivité et cardinalité

Bonjour,
Je souhaite avoir une définition exacte de la sélectivité et la cardinalité, car j'ai du mal à voir la différence en suivant celles fournies par Oracle :
Citation:
Selectivity : The first measure, selectivity, represents a fraction of rows from a row set.
The row set can be a base table, a view, or the result of a join or a GROUP BY operator.

Cardinality : Cardinality represents the number of rows in a row set. Here, the row set
can be a base table, a view, or the result of a join or GROUP BY operator.
Pour la Sélectivité, je pense avoir compris que c'est le ratio suivant :
Code :
SELECT count(*) FROM Mon_Objet WHERE col = 'value' / SELECT count(*) FROM Mon_Objet
Par contre, pour la Cardinalité, j'avoue avoir du mal.
Si vous aviez un exemple concret, ça m'aiderait bien.

Merci d'avance.
tibal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2011, 13h08   #2
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
La cardinalité c'est tout simplement le nombre de lignes d'un ensemble de lignes qui peut être le résultat d'une requête ou une étape intermédiaire d'un plan d'exécution d'une requête. La sélectivité est donc un rapport de cardinalités.

Dans votre exemple, c'est:

Code :
1
2
 
SELECT count(*) FROM Mon_Objet WHERE col = 'value'
et

Code :
SELECT count(*) FROM Mon_Objet
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2011, 14h32   #3
Membre confirmé
 
Inscription : octobre 2006
Messages : 440
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 440
Points : 222
Points : 222
Merci Pierre, donc pour la sélectivité, si
Code :
SELECT count(*) FROM Mon_Objet WHERE col = 'value'
renvoie 10 lignes
et
Code :
SELECT count(*) FROM Mon_Objet
renvoie 100 lignes
La sélectivité est de Pour la cardinalité, c'est donc 10 ?

Merci pour votre aide.
tibal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2011, 19h17   #4
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
Vous pouvez trouver une définition qui lie sélectivité et cardinalité dans Troubleshooting Oracle Performance page 13 (lisible sur Google Books):

Code :
cardinalité = sélectivité * num_rows
num_rows est le nombre de lignes traitées en entrée, cardinalité est le nombre de lignes en sortie, ceci pour une opération donnée.

Dans votre exemple l'opération est accès à une table avec un filtre WHERE col='value', num_rows=100 et sélectivité = 0,10 donc cardinalité = 10.

Voir aussi
http://asktom.oracle.com/pls/asktom/...40230704959128
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2011, 21h09   #5
Membre confirmé
 
Inscription : octobre 2006
Messages : 440
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 440
Points : 222
Points : 222
Merci Pierre.
tibal est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h02.


 
 
 
 
Partenaires

Hébergement Web