Par défaut, Oracle utilise l’optimiseur basé sur les coûts afin de déterminer le meilleur plan d’exécution pour une requête. Pour permettre à l’optimiseur de mieux estimer les coûts, vous pouvez calculer les statistiques sur la table que vous interrogez. Pour ce faire, utilisez la commande suivante:
Lancer le script suivant :
select 'analyze table ' ||tablename|| ' compute statistics ; ' from maxtable;
Puis lancer le résultat.
Vous pouvez également recueillir des statistiques en parallèle avec la procédure DBMS_STATS.gather_table_stats.
begin
DBMS_STATS.GATHER_TABLE_STATS('SchName', 'TableName',
estimate_percent=>50,
block_sample=>TRUE,
degree=>4) ;
end ;
Exemple :
begin
DBMS_STATS.GATHER_TABLE_STATS('MAXIMO', 'WORKORDER',
estimate_percent=>50,
block_sample=>TRUE,
degree=>4) ;
end ;
Ou bien utiliser la procédure de MAXIMO (MAXIMO_GATHER_TABLE_STATS) :
execute MAXIMO_GATHER_TABLE_STATS('SchName', 'TableName', );
-- Exemple sur la table ASSET de la schéma MAXIMO:
execute MAXIMO_GATHER_TABLE_STATS('MAXIMO','ASSET');
Commentaires
Une question ou un retour d’expérience sur cette procédure ? Partagez-le ici.
Connectez-vous pour participer à la discussion.
Se connecter