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 :

Query accross multiple database


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 62
    Par défaut Query accross multiple database
    Bonjour,

    J'ai besoin de vos avis / conseils pour structurer une requête qui va récupérer des données dans plusieurs bases de production.

    Actuellement, j'ai une requête de ce genre sous forme de procédure stockée avec paramètres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT champ1,champ2,champ3... FROM DB1.dbo.MyTable WHERE ...
    UNION ALL
    SELECT champ1,champ2,champ3... FROM DB2.dbo.MyTable WHERE ...
    UNION ALL
    SELECT champ1,champ2,champ3... FROM DB3.dbo.MyTable WHERE ...
    ...
    Qui est répété plus de 70 fois. Donc forcément la requête est hyper longue.
    Est ce qu'il existe un moyen d'utiliser qu'une seule requête et de boucler dessus en changeant les noms des bases et les cumuler en UNION ALL ?
    Si vous avez d'autres solutions, je suis preneur.
    Merci d'avance.

    Bonne journée.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    Sans la requête compléte avec son WHERE et le détails des colonnes et index de la table impossible de vous aider....

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 62
    Par défaut
    Bonjour SQLpro, je vous ai envoyé un MP avec quelques explications sur le pourquoi de l'exemple de la requête.
    Bonne réception.
    Merci par avance.

    Cordialement.

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    Les performances sont directement liées à l'écriture de la requête, la structure des tables, la volumétrie et l'indexation.

    Il est impossible de changer la volumétrie sans perdre des données.
    Vous ne pouvez pas changer la structure des tables si c'est un logiciel tiers.

    Il vous reste l'indexation et l'écriture.

    Le droit européen consacrant la structure d'une base comme étant une œuvre de l'esprit, cette dernière est donc naturellement protégée par la législation. Vous pouvez donc sans crainte décrire les tables dans ce forum à titre de citation.

    Les index étant des éléments techniques d'administration vous appartenant, vous pouvez aussi sans crainte les publier ici même.

    La seule chose effectivement confidentiel, reste les données. Il vous suffit de les anonymiser. Il existe des logiciels pour cela.

    Sans ces éléments toute tentative pour vous aider est impossible !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 62
    Par défaut
    Bonjour,

    Suite à votre retour, je poste donc la fameuse requête (sans informations confidentielles) qui est répliqué sur X bases avec un union all : https://pastebin.com/WcZx8TMa
    Comme je disais dans le premier mail. Il n'y a que les noms des bases qui change dans les jointures le reste est identique.
    Je voulais donc savoir s'il existe un moyen d'éviter de répéter la requête et de passer directement par une boucle ? Ce qui serait plus pratique pour maintenir la requête de base.

    Qu'en pensez vous ? Merci d'avance.

  6. #6
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 625
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Je n'arrive pas a visualiser la page en lien (peut être l'url est elle bloquée par le firewall), pouvez vous poster la requete directement sur ce fil avec des balises code

Discussions similaires

  1. [EJB3] Multiple database
    Par _xme_ dans le forum JOnAS
    Réponses: 10
    Dernier message: 04/11/2011, 11h49
  2. [XL-2007] Données externes ms query requêtes multiples
    Par coconut86 dans le forum Excel
    Réponses: 3
    Dernier message: 26/07/2011, 08h38
  3. SP2010 - Problème de multiple Database SQL server 2008
    Par zencorp dans le forum Installation
    Réponses: 0
    Dernier message: 19/01/2011, 16h46
  4. Spring et multiples databases dynamiques
    Par R1D3M4N dans le forum JPA
    Réponses: 4
    Dernier message: 15/12/2008, 13h33
  5. Problème de select multiple + database
    Par thomfort dans le forum Langage
    Réponses: 3
    Dernier message: 31/01/2008, 23h50

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