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

Développement SQL Server Discussion :

Requête récursive lente


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2014
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2014
    Messages : 199
    Points : 70
    Points
    70
    Par défaut Requête récursive lente
    Bonjour,

    J'ai une table A qui est lié à une autre table B
    Pour 1 A, je peux avoir beaucoup de B

    J'ai besoin de faire une vue qui pour chaque ligne de la table A, concatene dans une colonne un champ varchar de B

    Je fait cette requete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT DISTINCT T .id_communication,
                          (SELECT ' ' + Z.adresse
                           FROM     table_B Z
                           WHERE   Z.id_communication = T .id_communication FOR XML PATH(''), TYPE ).value('.', 'VARCHAR(MAX)') AS list_email
                      FROM     table_B T
                      WHERE  adresse <> ''
    Cela fonctionne bien quand il y a peu de ligne mais c'est catastrophique quand il y a beaucoup de ligne dans B pour un A...

    Est ce que cela est normal (les requètes récursive sont par définition lente ?) ou est ce que ma requete est mal construite ?

    Par avance, Merci
    Sylo

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Votre requête n'est pas une requête récursive. elle contient simplement une sous requete.

    Pour que l'on puisse vous aider, il nous faudrait connaitre la structure des tables et surtout les index disponibles sur ces tables.

    Vous parlez d'une table A et une table B, mais votre requête ne fait référence qu'a une seule table

    Pourquoi le DISTINCT ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Décembre 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Décembre 2007
    Messages : 327
    Points : 674
    Points
    674
    Par défaut
    Bonjour,

    Avez vous pensé au CTE conçu pour ce genre de requete recursive ?

    https://msdn.microsoft.com/fr-fr/library/ms175972.aspx
    MCSA SQL SERVER |MCT | MVP Data Platform

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2014
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2014
    Messages : 199
    Points : 70
    Points
    70
    Par défaut
    A flute, moi qui pensait 'faire du CTE'
    Bref, je dois me tromper
    Je vais regarder cela et je reviens vers vous
    Merci

Discussions similaires

  1. [2005] Requête récursive (en vue) lente avec jointure d'une table
    Par rvduclos dans le forum Développement
    Réponses: 5
    Dernier message: 19/03/2015, 09h59
  2. Requête récursive dans access
    Par Australia dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 29/07/2014, 15h15
  3. [SQL Server] Requête récursive
    Par margagn dans le forum Langage SQL
    Réponses: 8
    Dernier message: 01/04/2006, 04h31
  4. Pourquoi cette requête est lente ?
    Par zenzo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 06/01/2006, 15h15
  5. Requête récursive
    Par tirixil dans le forum Bases de données
    Réponses: 3
    Dernier message: 07/03/2005, 16h11

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