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

Langage SQL Discussion :

Optimisation d'un script


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 27
    Par défaut Optimisation d'un script
    Est ce que qlq'un peut m'aider a optimisé un scripte SQL (il fonctionne mtn normalement ? svp sql 'teradata'.sql )
    merci d'avance

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Par défaut
    Bonjour,
    Pour répondre correctement à ta question il faudrait
    • avoir un descriptif de tes tables
    • avoir un plan d'execution réel pour savoir où ça coince
    • avoir la liste des index
    • savoir ton sgbd


    Sinon à la lecture de ton script j'ai vu plusieurs fois dans un order by de fonction de fenêtrage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    case when COD_EVT in ('74','43') then '1000'  when COD_EVT in ('21', '42') then '0' else COD_EVT end
    Cela pourrait se transformer en une table de correspondance ou une vue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select '74' as Code_EVT, '1000' as Ordre
    union
    select '43' as Code_EVT, '1000' as Ordre
    union
    select '21' as Code_EVT, '0' as Ordre
    union 
    select '42' as Code_EVT, '0' as Ordre
    Tu fais une jointure externe sur cette table de correspondance et ton order by devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    COALESCE(ORDRE,CODE_EVT)
    Par ailleurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ,CAST(
    										SUBSTRING (CAST ( 
    												 TO_TIMESTAMP(
    															GREATEST(
    															COALESCE(TO_CHAR(CNT.DAT_DEB_VLD , 'yyyymmddhh24miss'),'19000101000000'),
    															COALESCE(TO_CHAR(EVT.DAT_EVT_UTC, 'yyyymmddhh24miss'),'19000101000000')
    															),'yyyymmddhh24miss')
    										AS VARCHAR(25))  FROM 1 FOR 19)  
    									AS TIMESTAMP(0) FORMAT 'YYYY/MM/DDBHH:MI:SS')
    								AS DAT_EVT_UTC
    me semble quelque peu compliqué, et n'utilisera jamais d'index que cherches tu à faire?
    Enfin si tu ne veux pas prendre le risque d'être spammé enlève ton adresse mail de ton post.
    Cordialement
    Soazig

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 27
    Par défaut
    le scripte fonctionne bien mais on dois l'optimiser , on travaille sur teradata

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Par défaut
    Bonjour,
    Tu n'as répondu qu'à une question sur 5.
    Je reformule pour le plan d’exécution il servira à savoir ce qui prend du temps, et quelle est ou quelles sont la ou les portions à remanier.

    As tu essayé ma suggestion avec table de correspondance.
    Nous ne sommes pas magiciens, sans information nous ne pouvons pas deviner.
    A+
    Soazig

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 27
    Par défaut
    Merci pour votre réponse , pour le reste des questions je peux réponde demain en rentrant au boulot , j'ai ramené que le script pour le moment , merci encore une fois .

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 27
    Par défaut
    voila le message de demande d'optimisation ''Optimisation technique de la requête sur le calcul d'EVENT.
    Avec la quantité croissante d'événement, une optimisation est nécessaire pour éviter tout accident dans un proche avenir.''

Discussions similaires

  1. optimisation d'un script d'inscription en PHP.
    Par JeanJean75 dans le forum Langage
    Réponses: 20
    Dernier message: 24/12/2009, 01h25
  2. Execution/optimisation d'un script php ultra long
    Par Skar dans le forum Langage
    Réponses: 2
    Dernier message: 11/06/2009, 17h23
  3. [MySQL] Besoin d'aide pour optimisation d'un script très lourd
    Par macadamgrafik dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/02/2009, 16h08
  4. Optimisation d'un script d'analyse
    Par azerwhite dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 21/10/2008, 09h48
  5. Réponses: 6
    Dernier message: 23/01/2007, 17h20

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