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 :

Optimisation du temps de traitement


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10
    Points : 10
    Points
    10
    Par défaut Optimisation du temps de traitement
    Salut à tous,

    je voudrais connaître quelle méthode faut-il mieux utiliser pour optimiser le temps de traitement dans le problème suivant :

    J'ai une table A qui a comme champ (ITEM, LOC, SUPP, CNTRY) : Cette table compte quasiment 30 000 000 d'enregistrement.

    J'ai une autre table B qui a comme champ (ITEM, SUPP, CNTRY, PRIMARY_SUPP, PRIMARY_CNTRY) qui compte environ 6 000 000 d'enregistrement.

    Dans la table A, j'ai des articles définis avec leur localisation, ainsi que le fournisseur principal avec la country principale.

    Dans la table B, j'ai les articles définis avec leur fournisseur et leur country ainsi que deux colonnes pour spécifier s'il s'agit du fournisseur principal et de la country principal.

    Sans m'étendre trop sur le sujet, je cherche la meilleur méthode pour récupérer les items de la table A dont le SUPP et le CNTRY ne sont pas principals dans la table B.

    J'ai déjà essayer plusieurs cas, mais tous présente des temps de traitement trop long.

    Donc je voulais connaître les moyens d'optimiser au mieux les jointures entre table (Passage par une table temporaire ?, ...).

    Vous remerciant tous d'avance pour votre participation,
    veuillez passer une bonne journée.

    Julien

  2. #2
    Membre éclairé Avatar de plabrevo
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 547
    Points : 670
    Points
    670
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select Item Supp, Cntry
    From A
    Minus
    Select Item, Primary_supp, Primary_cntry
    From B
    ?

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 414
    Points : 671
    Points
    671
    Par défaut
    Etant donné les volumétries, que les prédicats de filtrage sont faibles, que la cardinalité des deux tables est élevées, faudra pas s'attendre à des miracles.

    Je ne suis pas un pro du SQL mais peut être y a t il une solution?

    Sinon, autre solution, plus de DBA , tu crées une vue matérialisée de ce dont tu as besoin et apres tu fais un select bete sur cette vue. Aucun problème de temps de réponse, la vue matérialisée a déjà fait tout le boulot (un des concepts utilisé en DataWarehouse)

  4. #4
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Ce serait bien de nous fournir une requête SQL qui répond au problème fonctionnel. A partir de là, nous pourrons te conseiller une solution technique

  5. #5
    Membre éclairé Avatar de plabrevo
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 547
    Points : 670
    Points
    670
    Par défaut
    Il faut resister a la tentation de creer des MVs pour resoudre tous les problemes de performance.

    Il faut 1Gb pour stocker 30.000.000 enregistrements simples, et 200M pour en stocker 6.000.000. On est loin de volumes extraordinaires!
    Un FULLSCAN de ces tables ne prendra que quelques secondes, et une operation ensembliste entre les deux, seulement quelques minutes.

Discussions similaires

  1. Comment optimiser le temps de traitement d'un trigger ?
    Par frp31 dans le forum SQL Procédural
    Réponses: 0
    Dernier message: 26/03/2010, 09h49
  2. optimiser le temp du traitement d'une boucle
    Par riad_09 dans le forum Développement
    Réponses: 1
    Dernier message: 05/11/2009, 08h38
  3. Réponses: 2
    Dernier message: 11/04/2009, 12h57
  4. optimisation du temps de traitement cat
    Par josepeemiasa dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 10/03/2008, 18h35
  5. optimisation de temps de traitement xml/xslt
    Par Erwy dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 06/05/2004, 16h08

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