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

Oracle Discussion :

HASH Join pour un OLTP en 8i


Sujet :

Oracle

  1. #1
    Membre chevronné Avatar de Wurlitzer
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 469
    Par défaut HASH Join pour un OLTP en 8i
    Bonjour,

    J'ai l'impression que les HASH Join ne sont pas tres efficace. A chaque fois que j'a eu a regarder une requete qui faisait des HASH Join j'ai pu etre plus efficace en forcant des Nested Loop. Qu'en pensez vous ?

    J'ai vu qu'il y avait un parametre pour desactiver cette fonctionalmité. L'avez vous utilisé pour vos base OLTP (en 8i) ? Pensez vous que cela soit risqué de l'utiliser.

    Savez vous si il existe un parametre pour ne pas interdire le hash join mais juste le decourager pour qu'il ne soit utilisé que dans les cas sans indexe.

    Encore une fois merci pour la qualité de ce forum,

  2. #2
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 49
    Par défaut
    Comment as tu fait pour forcer les nestedd loop ?

  3. #3
    Membre chevronné Avatar de Wurlitzer
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 469
    Par défaut
    J'ai juste forcé le mode RULE sur cette requete

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 487
    Par défaut
    Citation Envoyé par Wurlitzer
    Bonjour,

    J'ai l'impression que les HASH Join ne sont pas tres efficace. A chaque fois que j'a eu a regarder une requete qui faisait des HASH Join j'ai pu etre plus efficace en forcant des Nested Loop. Qu'en pensez vous ?

    J'ai vu qu'il y avait un parametre pour desactiver cette fonctionalmité. L'avez vous utilisé pour vos base OLTP (en 8i) ? Pensez vous que cela soit risqué de l'utiliser.

    Savez vous si il existe un parametre pour ne pas interdire le hash join mais juste le decourager pour qu'il ne soit utilisé que dans les cas sans indexe.

    Encore une fois merci pour la qualité de ce forum,


    Bonjour,

    En clair, tu nous dit que l'optimseur ne choisit pas les bons plans par défaut.
    Il faux déjà que tes stats soient TOUTES à jours. Il est très important de les calculer.

    Ensuite, il existe plusieur paramètres permettant d'influencer avec les méthodes de jointures.

    Les voici de mémoire en vrac.
    Après, cherche dans la doc et fait quelques tests!

    db_file_multiblock_read_count
    optimizer_index_caching
    optimizer_index_cost_adj

    Un dernier conseil:

    N'utilise jamais le mode rule. Tu peux le considérer comme obsolète.
    Je te conseille de mettre explicitement un /*use_nl(table1,table2)*/ quand tu veux un nested loop.

    Et pour finir, il existe ébormément de cas ou les hash sont beaucoup plus efficaces que les nested loop, et-ce, même en OLTP. Mais c'est presque une autre discussion...

    bon courage

Discussions similaires

  1. dans quel cas une jointure nested loops est meilleur que hash join?
    Par M_Dandouna dans le forum Administration
    Réponses: 5
    Dernier message: 08/09/2009, 15h46
  2. Hash Semi Join VS Hash Join
    Par pacmann dans le forum SQL
    Réponses: 5
    Dernier message: 25/08/2008, 18h05
  3. Réponses: 8
    Dernier message: 22/04/2008, 17h24
  4. inner join pour requete update ne marche pas
    Par Garra dans le forum Requêtes
    Réponses: 4
    Dernier message: 25/01/2006, 13h14
  5. [C#] Comment coder un String.Join pour des int ?
    Par luimême dans le forum C#
    Réponses: 2
    Dernier message: 12/10/2005, 08h14

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