IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

expertise tuning sql


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 137
    Points : 59
    Points
    59
    Par défaut expertise tuning sql
    Bonsoir les amis,

    j'ai une requete dans ma base sous oracle 9ir2 comme suit
    select distinct (col1) from matable
    where col2=:1; elle est tres simple!!!!.

    ma table est petite, est une table de reference, contient 223 lignes,
    le plan d'execution me fait un acces full, avec le triplet suivant:
    (cost,io,cpu)= (12500,38000,1224), je voulais créer un index sur la colonne
    col2, le nouveau plan d'execution, me fait un range scane et le triplet (cost,io,cpu)devient (221,1100,4800), je remarque que le cost et io deviennent meilleurs par rapport avant, par contre la cpu a été multipliée par 4 beacoup plus qu'avant, je ne sais pas si cet index est bon ou non? et dans ce cas sur quel critere je me base? sur le cost et io ou sur le triplet? sachant qu'on ma dit qu'il ne faut ps tenir compte trop sur le cost!!!!!!, qu'est que vous pouvez me conseiller pour ce cas svp? l'index est-il benefique?


    une autre info, le db_block_read_count est a 32.

    Merci d'avance pour votre aide

  2. #2
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Quelle est la version Oracle utilisée ?

    Théoriquement c'est le coût le plus faible qui est le meilleur en supposant que l'optimiseur fait une bonne estimation du coût de la requête. En pratique, il faut surtout prendre en compte la configuration requête, index, calcul des statistiques et paramètres pour l'optimiseur qui donne l'exécution la plus rapide dans le contexte d'exécution le plus proche possible des conditions réelles. La meilleure façon d'analyser le temps d'exécution d'une requête c'est la trace SQL et tkprof.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 207
    Points : 237
    Points
    237
    Par défaut
    Bonjour,

    select distinct (col1) from matable
    where col2=:1; elle est tres simple!!!!.


    Effectivement, elle est simple et meme avec un full ca me parait fort comme cost.

    -1/ Faire le test en créeant un index sur Col2,Col1 comme ca tu as la clause where & la clause select en un seul scan.
    -2/ Avant de faire le plan, il faut relancer un analyze de la table pour avoir des stats à jours.
    -3/ Attention si cette table à fait l'object de beaucoup d'insert , puis delete,... le hig water Mark peut être élévé.
    un petit select table_name, num_rows, blocks, last_analyzed from user_tables where table_name ='MATABLE' (bien mettre le nom de la table en majuscule).
    Si le nb de blocs est élevé, alors pour remettre le hig water mark à niveau :
    - faire un move de la table sur le tablespace (en pensant à faire un rebuild des indexes après) + analyze de la table + refaire la requete sur user_table pour vérifier l'impact + plan d'execution.

    Voila ces quelques pistes !
    D'un autre coté avec une taille de blocks de 32, on doit pas être loin de ramener la table avec un un seul blocks et donc le full scan n'est pas couteux.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 137
    Points : 59
    Points
    59
    Par défaut
    Bonsoir les amis,

    Merci pour ces réponses precieuses, je vais essayer et je vous informerai du resultat
    merci

Discussions similaires

  1. Tuning SQL - Jointure complète
    Par Socap dans le forum Développement
    Réponses: 6
    Dernier message: 09/02/2011, 14h01
  2. Tuning Sql & jointure
    Par Stef784ever dans le forum SQL
    Réponses: 3
    Dernier message: 11/05/2010, 15h59
  3. Tuning SQL Server 2000 --> SQL Server 2005
    Par plutonium719 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 24/10/2007, 16h13
  4. Tuning requêtes sql oracle
    Par Mehdilis dans le forum Oracle
    Réponses: 2
    Dernier message: 13/06/2007, 13h32
  5. Oracle 9.2 : Tuning SQL
    Par davy.g dans le forum Oracle
    Réponses: 11
    Dernier message: 11/08/2006, 08h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo