optimisation d'une requête sur de multiples serveur
1 réponse
Test recherche
Bonjour je suis sous sql 2000 et je fais une requete sur des serveur
différents mais pour obtenir le même résultats
et je me demandais s'il y avais un moyen d'optimiser à
le code est le suivant selon une variable qui m'indique quel serveur
consulter
If @l_ChoixServeur = 1
Begin
Select champ1,
champs2,....
From SERVEUR1.BASE1.dbo.Table1
Inner join SERVEUR1.BASE2.dbo.Table2
On ....
Where ...
End
Else If @l_ChoixServeur = 2
Begin
Select champ1,
champs2,....
From SERVEUR2.BASE1.dbo.Table1
Inner join SERVEUR2.BASE2.dbo.Table2
On ....
Where ...
End
Else If @l_ChoixServeur = 3
Begin
Select champ1,
champs2,....
From SERVEUR3.BASE1.dbo.Table1
Inner join SERVEUR3.BASE2.dbo.Table2
On ....
Where ...
End
Mon problème est que comme la liste des champs retournée est assez longue,
quand il y a une modification il faut la reportée autant de fois que de
serveur
Merci d'avance
Cordialement
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fred BROUARD
Si la requête n'est pas compliquée : faites là en dynamique.
Si elle est compliquée, faites une vue d'agrégation interserveur, mais n'oubliez pas de mettre dans vos tables les contraintes CHECK de partitionnement.
A +
Test recherche a écrit :
Bonjour je suis sous sql 2000 et je fais une requete sur des serveur différents mais pour obtenir le même résultats et je me demandais s'il y avais un moyen d'optimiser à
le code est le suivant selon une variable qui m'indique quel serveur consulter If @l_ChoixServeur = 1 Begin Select champ1, champs2,.... From SERVEUR1.BASE1.dbo.Table1 Inner join SERVEUR1.BASE2.dbo.Table2 On .... Where ... End Else If @l_ChoixServeur = 2 Begin Select champ1, champs2,.... From SERVEUR2.BASE1.dbo.Table1 Inner join SERVEUR2.BASE2.dbo.Table2 On .... Where ... End Else If @l_ChoixServeur = 3 Begin Select champ1, champs2,.... From SERVEUR3.BASE1.dbo.Table1 Inner join SERVEUR3.BASE2.dbo.Table2 On .... Where ... End
Mon problème est que comme la liste des champs retournée est assez longue, quand il y a une modification il faut la reportée autant de fois que de serveur Merci d'avance Cordialement
Stéphane
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation *********************** http://www.sqlspot.com *************************
Si la requête n'est pas compliquée : faites là en dynamique.
Si elle est compliquée, faites une vue d'agrégation interserveur, mais
n'oubliez pas de mettre dans vos tables les contraintes CHECK de
partitionnement.
A +
Test recherche a écrit :
Bonjour je suis sous sql 2000 et je fais une requete sur des serveur
différents mais pour obtenir le même résultats
et je me demandais s'il y avais un moyen d'optimiser à
le code est le suivant selon une variable qui m'indique quel serveur
consulter
If @l_ChoixServeur = 1
Begin
Select champ1,
champs2,....
From SERVEUR1.BASE1.dbo.Table1
Inner join SERVEUR1.BASE2.dbo.Table2
On ....
Where ...
End
Else If @l_ChoixServeur = 2
Begin
Select champ1,
champs2,....
From SERVEUR2.BASE1.dbo.Table1
Inner join SERVEUR2.BASE2.dbo.Table2
On ....
Where ...
End
Else If @l_ChoixServeur = 3
Begin
Select champ1,
champs2,....
From SERVEUR3.BASE1.dbo.Table1
Inner join SERVEUR3.BASE2.dbo.Table2
On ....
Where ...
End
Mon problème est que comme la liste des champs retournée est assez longue,
quand il y a une modification il faut la reportée autant de fois que de
serveur
Merci d'avance
Cordialement
Stéphane
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************
Si la requête n'est pas compliquée : faites là en dynamique.
Si elle est compliquée, faites une vue d'agrégation interserveur, mais n'oubliez pas de mettre dans vos tables les contraintes CHECK de partitionnement.
A +
Test recherche a écrit :
Bonjour je suis sous sql 2000 et je fais une requete sur des serveur différents mais pour obtenir le même résultats et je me demandais s'il y avais un moyen d'optimiser à
le code est le suivant selon une variable qui m'indique quel serveur consulter If @l_ChoixServeur = 1 Begin Select champ1, champs2,.... From SERVEUR1.BASE1.dbo.Table1 Inner join SERVEUR1.BASE2.dbo.Table2 On .... Where ... End Else If @l_ChoixServeur = 2 Begin Select champ1, champs2,.... From SERVEUR2.BASE1.dbo.Table1 Inner join SERVEUR2.BASE2.dbo.Table2 On .... Where ... End Else If @l_ChoixServeur = 3 Begin Select champ1, champs2,.... From SERVEUR3.BASE1.dbo.Table1 Inner join SERVEUR3.BASE2.dbo.Table2 On .... Where ... End
Mon problème est que comme la liste des champs retournée est assez longue, quand il y a une modification il faut la reportée autant de fois que de serveur Merci d'avance Cordialement
Stéphane
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation *********************** http://www.sqlspot.com *************************