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

Requêtes MySQL Discussion :

Requette Trop longue. Comment optimiser ?[Traitement]


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 182
    Points : 110
    Points
    110
    Par défaut Requette Trop longue. Comment optimiser ?[Traitement]
    Bonjour,

    J'ai créé une procédure stockées qui insert quelques dizaines de milliers d'enregistrements par rapport à plusieurs tables. Cela ne prend que quelques secondes. Cela dit au sein de cette procédure, dans mon select il faut que je divise plusieurs champs par un numbre que je vais chercher dans une autre table. A chaque ligne il faut rechercher de nouveau le nombre
    J'ai donc fait une une fonction qui va chercher le nombre de la division.

    La requette fonctionne mais cela prend beaucoup de temps (Plus d'une heure).

    Voici une partie de la requette d'insertion.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    INSERT INTO FAC_0101_RENTABILITE
    -- On insére dans la table de fait tous les enregistrements
    SELECT     INT_0101_CDESCLIDAX.site_fact, INT_0101_HISTOSYNTHESERENTAB.cde_client,
    INT_0101_HISTOSYNTHESERENTAB.nom_client, INT_0101_HISTOSYNTHESERENTAB.famille_prod,
    PER_0101_FAMILLESPROD.nom_famprod, 
    INT_0101_HISTOSYNTHESERENTAB.marche, INT_0101_HISTOSYNTHESERENTAB.aamm_solde, 
    INT_0101_HISTOSYNTHESERENTAB.m2_meo/dbo.FUNC_PST_FAC_0101_RENTABILITE_NBLIGNE_CMDE(INT_0101_HISTOSYNTHESERENTAB.cde_client),         INT_0101_HISTOSYNTHESERENTAB.laize/dbo.FUNC_PST_FAC_0101_RENTABILITE_NBLIGNE_CMDE(INT_0101_HISTOSYNTHESERENTAB.cde_client),
    INT_0101_HISTOSYNTHESERENTAB.m2_fab/dbo.FUNC_PST_FAC_0101_RENTABILITE_NBLIGNE_CMDE(INT_0101_HISTOSYNTHESERENTAB.cde_client),NT_0101_HISTOSYNTHESERENTAB.m2_plan_exp/dbo.FUNC_PST_FAC_0101_RENTABILITE_NBLIGNE_CMDE(INT_0101_HISTOSYNTHESERENTAB.cde_client), 
    /* J'appel 10 ou 12 fois cette fonction */
    + le reste de du select
    FROM mes tables
    WHERE mes crières
    Code de la fonction
    Je recherche le nombre de la division par rapport au num commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    CREATE FUNCTION dbo.FUNC_PST_FAC_0101_RENTABILITE_NBLIGNE_CMDE (@NUMCMDE VARCHAR(6))  
    RETURNS integer AS 
    BEGIN
    DECLARE @nbrows integer
    SELECT @nbrows = TMP.nbligne 
    FROM TMP_FAC_0101_RENTABILITE_NBLIGNE_CMDE TMP
    WHERE TMP.cde_client like @NUMCMDE
    RETURN (@nbrows)
    END
    Savez vous comment je pourrais accélerer l'execution de tout ceci ?

  2. #2
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Bonjour,

    Peut-on avoir les ordres de création de tes tables ?
    Pourquoi TMP.cde_client like @NUMCMDE et pas TMP.cde_client = @NUMCMDE ?

Discussions similaires

  1. Comment faire lorsque la requete est trop longue ?
    Par tabtab dans le forum Requêtes et SQL.
    Réponses: 16
    Dernier message: 26/03/2008, 14h55
  2. Requête trop lente, comment l'optimiser?
    Par getz85 dans le forum Langage SQL
    Réponses: 19
    Dernier message: 29/01/2008, 13h40
  3. Réponses: 3
    Dernier message: 01/06/2007, 16h13
  4. [Formule] Optimisation (formule trop longue)
    Par Alqualonde dans le forum Excel
    Réponses: 6
    Dernier message: 21/05/2007, 17h08
  5. [XSLT] Comment optimiser les traitements XML/XSL ?
    Par thibaut06 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 24/03/2006, 16h39

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