lundi 1 août 2011

STATISTIQUES : dynamic sampling

Oracle offre la possibilité à l'optimiseur de calculer ses statistiques à la volée, en utilisant le mécanisme DYNAMIC SAMPLING. Ceci peut se révéler efficace lorsque Oracle détecte que des statistiques sont absentes ou insuffisament précises, en contre-partie, le parsing de la requête durera un peu plus longtemps...

Pour activer ce mécanisme, il faut 
  • soit que le paramètre d'initialisation OPTIMIZER_DYNAMIC_SAMPLING soit positionné à une valeur entre 1 et 10
  • soit que le hint /*+ DYNAMIC_SAMPLING(tab value) */ soit indiqué dans une requête.
Exemple :
 
SELECT /*+ dynamic_sampling(e 1) */ count(*) 
FROM employees e;

Oracle détermine ainsi au moment de la compilation si une requête peut bénéficier du DYNAMIC SAMPLING. Si tel est le cas, un SQL recursif est exécuté pour scanner un échantillon des blocks de la table et comparer les résultats aux valeurs des prédicats de la requête avant de choisir le meilleur plan d'exécution.

Aucun commentaire:

Enregistrer un commentaire