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 :

[9i]Performance requete dlink


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Profil pro
    Laveur
    Inscrit en
    Avril 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Laveur

    Informations forums :
    Inscription : Avril 2004
    Messages : 142
    Par défaut [9i]Performance requete dlink
    Bonjour,

    J'ai une requete du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select ks_bqe,ks_cc,ks_ci,ks_pci,ks_dev,sum(ks_slddev) from ksdtmois@lien_dcgc_PREX_www.world s,pciro p
    where ks_mois = (select max(ks_mois)-1 from ksdtmois@lien_dcgc_PREX_www.world)
    group by ks_bqe,ks_cc,ks_ci,ks_pci,ks_dev
    J'essaie d'utiliser l'alias (sans doute pas de la bonne manière ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select ks_bqe,ks_cc,ks_ci,ks_pci,ks_dev,sum(ks_slddev) from ksdtmois@lien_dcgc_PREX_www.world s,pciro p
    where ks_mois = (select max(ks_mois)-1 from s)
    group by ks_bqe,ks_cc,ks_ci,ks_pci,ks_dev
    Ca c'est mon premier soucis, car ensuite j'essaie de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select ks_bqe,ks_cc,ks_ci,ks_pci,ks_dev,sum(ks_slddev) from ksdtmois@lien_dcgc_PREX_www.world s,pciro p
    where ks_mois = (select max(ks_mois)-1 from ksdtmois@lien_dcgc_PREX_www.world)
    and s.ks_pci = p.pc_numpci and p.pc_attribcontrol = 'R1'
    group by ks_bqe,ks_cc,ks_ci,ks_pci,ks_dev
    Le truc c'est que ca prends environ 2 min pour me renvoyer une résultat.

    Merci pour vos propositions.

  2. #2
    Membre Expert
    Inscrit en
    Avril 2006
    Messages
    1 024
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 1 024
    Par défaut
    Les jointures à travers le réseau, c'est super dangeureux parcque non seulement ça peut faire des requêtes longues mais en plus ça sature le réseau.

    La solution propre dans ces cas là est de dupliquer un table par snapshots de manière à ce que les 2 tables se trouvent au même endroit. Mais bon c'est pas toujours possible...

    Sinon... est-ce que tu as passé les stats sur les 2 bases de données ?

    Si oui... je dupliquerais provisoirement une des 2 tables sur une autre base (la plus petite...) et je commencerais à optimiser la requête en local parcque le problème est peut-etre indépendant du db_link...

  3. #3
    Membre confirmé

    Profil pro
    Laveur
    Inscrit en
    Avril 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Laveur

    Informations forums :
    Inscription : Avril 2004
    Messages : 142
    Par défaut
    Merci pour ces infos.
    Je pensais vraiment etre nulle en SQL.
    A vrai dire je ne sais pas trop comment faire ce que tu me recommandes

  4. #4
    Membre Expert
    Inscrit en
    Avril 2006
    Messages
    1 024
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 1 024
    Par défaut
    Avant de se soucier des perfs, je pense qu'il faut s'assurer que ta requête soit juste. Si tu mets des alias (ce qui est bien) il faudrait que tu préfixe tout tes champs avec ces alias, ça permetrait d'avoir de la lisibilité dans la requête.

    Ex: sur tes 2 premières requête, tu ne fait pas de jointure entre tes 2 tables ce qui va engendrer un produit cartésien, ce qui est quand même bizarre...

  5. #5
    Membre confirmé

    Profil pro
    Laveur
    Inscrit en
    Avril 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Laveur

    Informations forums :
    Inscription : Avril 2004
    Messages : 142
    Par défaut
    Ah c'est pas une jointure ca ? :

    Mes alias sont "s" et "p", peut etre que je m y prend mal

    La 1er et la 2e requete sont les même, c'est dans la 2e que j'essaie de foutre des alias mais sur le 2e appel à l'alias S, j'ai une erreur.

  6. #6
    Membre Expert
    Inscrit en
    Avril 2006
    Messages
    1 024
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 1 024
    Par défaut
    Citation Envoyé par mezoo
    Ah c'est pas une jointure ca ? :

    si, mais je ne la vois pas ni dans la 1iere ni dans la 2ieme requête...

    Sinon c'est normal que la 2ieme requête ne fonctionne pas car ce n'est pas comme ça que ça marche les alias... un alias sert à préfixer les colonnes, or là tu t'en sert pour économiser une répétition de ton db_link.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Différence performance requete like '2%ELB'
    Par Pacman23 dans le forum Administration
    Réponses: 5
    Dernier message: 23/01/2009, 10h20
  2. Performance requete client/serveur
    Par Shiven dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 30/11/2007, 19h15
  3. pb performance requete avec différence dates
    Par marion782 dans le forum SQL
    Réponses: 20
    Dernier message: 11/12/2006, 17h33
  4. [9i] Performance requete UPDATE + IN
    Par bob33 dans le forum Oracle
    Réponses: 12
    Dernier message: 26/10/2006, 15h22
  5. Performance requete SQL
    Par billout9 dans le forum Oracle
    Réponses: 4
    Dernier message: 28/11/2005, 21h13

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