- Faire un arrêté comptable à destination de votre directeur financier
- Estimer les tendance de vos ventes passées pour votre directeur commercial
Pour utiliser cette clause SAMPLE, c'est très simple. Cette requête sur le schema exemple SH :
select t.calendar_year year,Devient simplement :
p.prod_category product,
c.channel_class channel,
sum(AMOUNT_SOLD)
from sh.sales s,
sh.products p,
sh.times t,
sh.channels c
where s.prod_id=p.prod_id
and s.time_id=t.time_id
and s.channel_id=c.channel_id
group by t.calendar_year,
p.prod_category,
c.channel_class
order by 1,2,3;
select t.calendar_year year,Remarquez bien que si votre échantillons n'est pas représentatif parce que par exemple vous avez des données mal distribuées ou que le nombre de lignes de la table est trop faible, le résultat peut être très loin de la réalité. Lancez la requête suivante et vous verrez le résultat :
p.prod_category product,
c.channel_class channel,
sum(AMOUNT_SOLD)
from sh.sales sample(10) s,
sh.products p,
sh.times t,
sh.channels c
where s.prod_id=p.prod_id
and s.time_id=t.time_id
and s.channel_id=c.channel_id
group by t.calendar_year,
p.prod_category,
c.channel_class
order by 1,2,3;
select t.calendar_year year,Si vous lancez plusieurs fois la même requête, l'échantillon diffère et le résultat est différent. J'imagine que ça peut être compliqué à expliquer à un utilisateur ; le mot clé SEED(n) où n est une valeur entre 0 et 4294967295 et permet de fixer la manière dont l'échantillon est collecté et ainsi d'avoir le même résultat si les données ne change pas (Ça ne l'empêchera pas de n'être qu'un sondage).
p.prod_category product,
c.channel_class channel,
sum(AMOUNT_SOLD)
from sh.sales s,
sh.products p,
sh.times t,
sh.channels sample(10) c
where s.prod_id=p.prod_id
and s.time_id=t.time_id
and s.channel_id=c.channel_id
group by t.calendar_year,
p.prod_category,
c.channel_class
order by 1,2,3;
Si vous êtes DBA, je ne vous apprends rien puisque
- Vous collectez déjà les statistiques pour le CBO et que vous connaissez l'intérêt et le danger de la clause SAMPLE.
- Avec 10g vous utilisez surement déjà DYNAMIC_SAMPLING même implicitement avec le paramètre OPTIMIZER_DYNAMIC_SAMPLING
Aucun commentaire:
Enregistrer un commentaire