* Bonjour, *
Est-ce qu'il y a un moyen de visualiser tous les plans d'exécution d'une requête donnée et de choisir manuellement celui du moindre coût.
Merci.
* Bonjour, *
Est-ce qu'il y a un moyen de visualiser tous les plans d'exécution d'une requête donnée et de choisir manuellement celui du moindre coût.
Merci.
Tu veux remplacer l'optimiseur ?
Tu peux utiliser statement_id pour identidfier les plans :
Ensuite interroge PLAN_TABLE pour comparer les coûts par statement_id.
Code : Sélectionner tout - Visualiser dans une fenêtre à part EXPLAIN PLAN set statement_id ='identifiant' into nom_plan_table for requête ;
Pour forcer un plan d'exécution il faut utiliser un hint mais le hint ne porte pas sur un plan spécifique mais sur une méthode d'accès, aka forcer un nested loop ou un hash join ou forcer l'utilisation d'index ....
Globalement c'est considéré comme une mauvaise pratique car souvent tu veux qu'oracle détermine des plans différents, potentiellement par valeurs recherchées (dans certaines conditions) mais aussi dans le temps lorsque la répartition des données évolues, et ça, c'est le boulot du CBO s'appuyant sur le calcul des statistiques.
Puisque tu t'intéresses au COST, regarde l'article Comment l'optimiseur d'Oracle calcule le coût
Mais lis également les articles de Wolfgang Breitling (situés en bas de page de l'article de mnitu), pour mieux comprendre l'importance de la colonne CARD et le tuning par calcul de stat.
Il pourrait être intéressant de connaître la version d'Oracle utilisée car l'optimiseur a pas mal bougé entre la 9i et la 11g.
Bonjour,
En 11g le SQL Plan Baseline permet justement au DBA d'avoir la main sur les plans appliqués.
Si t'es en 10g tu peux utiliser les SQL profiles pour forcer Oracle à utiliser un plan existant. J'ai justement écris un article récemment sur mon blog à ce sujet:
http://ahmedaangour.blogspot.com/201...ia-un-sql.html
Bonsoir,
il y a aussi les outline qui permettent de forcer le plan d’exécution que l'on veut pour une requête donnée. D'ailleurs les baselines remplacent les outline dans la version 11G.
http://www.mhprofessional.com/downlo...90582_ch13.pdf
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager