J'ai un vrai problème de performance d'interogation des données
sur une table distante (liè).
J'ai deux serveurs SQL.
Server 1 : SQL 6.5
Server 2 : SQL 2000 Server
La table en question est sur le server1.
Elle contient 200 000 enregistrements.
Server1 est déclaré comme serveur lié sur server2,
via une connection native OleDb.
1) En se connectant directement sur le serveur Server 1 :
Select *
From myDb.dbo.myTable
Where condition1 & condition2 & ...
Les filtres portent uniquement sur la clef primaire;
La requête doit me retourner uniquement un seul enregistrement.
durée << 1s (qqes ms)
2) La même requête sur le server 2 :
Select *
From Server1.myDb.dbo.myTable
Where condition1 & condition2 & ...
2 min...!!!!
N.B. : Précision.
Server2 est ma machine de dév.
Dans le premier cas :
Je lance l'analyseur de requête sur server2
Ouvre la connection sur server1 et attaque directement la table
Dans le deuxième cas, je lance l'analyseur de requête toujours sur server2
Ouvre ma connection sur server2,
puis attaque la table via la connection lié.
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
bruno reiter [MVP]
surement dans le cas du serveur lié, il transfère d'abord toutes les données et fait la sélection ensuite.
pour éviter cela, il faut que le "classement soit le même sur le serveur lié, il doit y avoir une case à cocher au niveau du paramètrage du serveur lié, je ne sais plus si c'est possible avec un 6.5
HTH
br
"JeeCee" wrote in message news:cesvm3$1nh6$
Bonjour,
J'ai un vrai problème de performance d'interogation des données sur une table distante (liè).
J'ai deux serveurs SQL. Server 1 : SQL 6.5 Server 2 : SQL 2000 Server
La table en question est sur le server1. Elle contient 200 000 enregistrements.
Server1 est déclaré comme serveur lié sur server2, via une connection native OleDb.
1) En se connectant directement sur le serveur Server 1 :
Select * From myDb.dbo.myTable Where condition1 & condition2 & ...
Les filtres portent uniquement sur la clef primaire; La requête doit me retourner uniquement un seul enregistrement.
durée << 1s (qqes ms)
2) La même requête sur le server 2 :
Select * From Server1.myDb.dbo.myTable Where condition1 & condition2 & ...
2 min...!!!!
N.B. : Précision. Server2 est ma machine de dév. Dans le premier cas : Je lance l'analyseur de requête sur server2 Ouvre la connection sur server1 et attaque directement la table
Dans le deuxième cas, je lance l'analyseur de requête toujours sur server2 Ouvre ma connection sur server2, puis attaque la table via la connection lié.
Ce n'est donc pas un pb de réseau.
surement dans le cas du serveur lié, il transfère d'abord toutes les données
et fait la sélection ensuite.
pour éviter cela, il faut que le "classement soit le même sur le serveur
lié, il doit y avoir une case à cocher au niveau du paramètrage du serveur
lié, je ne sais plus si c'est possible avec un 6.5
HTH
br
"JeeCee" <nospam@nospam.fr> wrote in message
news:cesvm3$1nh6$1@biggoron.nerim.net...
Bonjour,
J'ai un vrai problème de performance d'interogation des données
sur une table distante (liè).
J'ai deux serveurs SQL.
Server 1 : SQL 6.5
Server 2 : SQL 2000 Server
La table en question est sur le server1.
Elle contient 200 000 enregistrements.
Server1 est déclaré comme serveur lié sur server2,
via une connection native OleDb.
1) En se connectant directement sur le serveur Server 1 :
Select *
From myDb.dbo.myTable
Where condition1 & condition2 & ...
Les filtres portent uniquement sur la clef primaire;
La requête doit me retourner uniquement un seul enregistrement.
durée << 1s (qqes ms)
2) La même requête sur le server 2 :
Select *
From Server1.myDb.dbo.myTable
Where condition1 & condition2 & ...
2 min...!!!!
N.B. : Précision.
Server2 est ma machine de dév.
Dans le premier cas :
Je lance l'analyseur de requête sur server2
Ouvre la connection sur server1 et attaque directement la table
Dans le deuxième cas, je lance l'analyseur de requête toujours sur server2
Ouvre ma connection sur server2,
puis attaque la table via la connection lié.
surement dans le cas du serveur lié, il transfère d'abord toutes les données et fait la sélection ensuite.
pour éviter cela, il faut que le "classement soit le même sur le serveur lié, il doit y avoir une case à cocher au niveau du paramètrage du serveur lié, je ne sais plus si c'est possible avec un 6.5
HTH
br
"JeeCee" wrote in message news:cesvm3$1nh6$
Bonjour,
J'ai un vrai problème de performance d'interogation des données sur une table distante (liè).
J'ai deux serveurs SQL. Server 1 : SQL 6.5 Server 2 : SQL 2000 Server
La table en question est sur le server1. Elle contient 200 000 enregistrements.
Server1 est déclaré comme serveur lié sur server2, via une connection native OleDb.
1) En se connectant directement sur le serveur Server 1 :
Select * From myDb.dbo.myTable Where condition1 & condition2 & ...
Les filtres portent uniquement sur la clef primaire; La requête doit me retourner uniquement un seul enregistrement.
durée << 1s (qqes ms)
2) La même requête sur le server 2 :
Select * From Server1.myDb.dbo.myTable Where condition1 & condition2 & ...
2 min...!!!!
N.B. : Précision. Server2 est ma machine de dév. Dans le premier cas : Je lance l'analyseur de requête sur server2 Ouvre la connection sur server1 et attaque directement la table
Dans le deuxième cas, je lance l'analyseur de requête toujours sur server2 Ouvre ma connection sur server2, puis attaque la table via la connection lié.
Ce n'est donc pas un pb de réseau.
JeeCee
Effectivement,
Dans l'onglet "options du serveur", j'ai coché l'option "utiliser le classement distant".
Les gains de performances sont sans aucune mesure...
01'16 à 00'04 sur une de mes requêtes.
Merci
"bruno reiter [MVP]" <remove.this! a écrit dans le message de news: surement dans le cas du serveur lié, il transfère d'abord toutes les données et fait la sélection ensuite.
pour éviter cela, il faut que le "classement soit le même sur le serveur lié, il doit y avoir une case à cocher au niveau du paramètrage du serveur lié, je ne sais plus si c'est possible avec un 6.5
HTH
br
"JeeCee" wrote in message news:cesvm3$1nh6$
Bonjour,
J'ai un vrai problème de performance d'interogation des données sur une table distante (liè).
J'ai deux serveurs SQL. Server 1 : SQL 6.5 Server 2 : SQL 2000 Server
La table en question est sur le server1. Elle contient 200 000 enregistrements.
Server1 est déclaré comme serveur lié sur server2, via une connection native OleDb.
1) En se connectant directement sur le serveur Server 1 :
Select * From myDb.dbo.myTable Where condition1 & condition2 & ...
Les filtres portent uniquement sur la clef primaire; La requête doit me retourner uniquement un seul enregistrement.
durée << 1s (qqes ms)
2) La même requête sur le server 2 :
Select * From Server1.myDb.dbo.myTable Where condition1 & condition2 & ...
2 min...!!!!
N.B. : Précision. Server2 est ma machine de dév. Dans le premier cas : Je lance l'analyseur de requête sur server2 Ouvre la connection sur server1 et attaque directement la table
Dans le deuxième cas, je lance l'analyseur de requête toujours sur server2 Ouvre ma connection sur server2, puis attaque la table via la connection lié.
Ce n'est donc pas un pb de réseau.
Effectivement,
Dans l'onglet "options du serveur", j'ai coché l'option "utiliser le classement
distant".
Les gains de performances sont sans aucune mesure...
01'16 à 00'04 sur une de mes requêtes.
Merci
"bruno reiter [MVP]" <remove.this!.br33@bol.com.br> a écrit dans le message de
news:uFMPQkFfEHA.372@TK2MSFTNGP12.phx.gbl...
surement dans le cas du serveur lié, il transfère d'abord toutes les données
et fait la sélection ensuite.
pour éviter cela, il faut que le "classement soit le même sur le serveur
lié, il doit y avoir une case à cocher au niveau du paramètrage du serveur
lié, je ne sais plus si c'est possible avec un 6.5
HTH
br
"JeeCee" <nospam@nospam.fr> wrote in message
news:cesvm3$1nh6$1@biggoron.nerim.net...
Bonjour,
J'ai un vrai problème de performance d'interogation des données
sur une table distante (liè).
J'ai deux serveurs SQL.
Server 1 : SQL 6.5
Server 2 : SQL 2000 Server
La table en question est sur le server1.
Elle contient 200 000 enregistrements.
Server1 est déclaré comme serveur lié sur server2,
via une connection native OleDb.
1) En se connectant directement sur le serveur Server 1 :
Select *
From myDb.dbo.myTable
Where condition1 & condition2 & ...
Les filtres portent uniquement sur la clef primaire;
La requête doit me retourner uniquement un seul enregistrement.
durée << 1s (qqes ms)
2) La même requête sur le server 2 :
Select *
From Server1.myDb.dbo.myTable
Where condition1 & condition2 & ...
2 min...!!!!
N.B. : Précision.
Server2 est ma machine de dév.
Dans le premier cas :
Je lance l'analyseur de requête sur server2
Ouvre la connection sur server1 et attaque directement la table
Dans le deuxième cas, je lance l'analyseur de requête toujours sur server2
Ouvre ma connection sur server2,
puis attaque la table via la connection lié.
Dans l'onglet "options du serveur", j'ai coché l'option "utiliser le classement distant".
Les gains de performances sont sans aucune mesure...
01'16 à 00'04 sur une de mes requêtes.
Merci
"bruno reiter [MVP]" <remove.this! a écrit dans le message de news: surement dans le cas du serveur lié, il transfère d'abord toutes les données et fait la sélection ensuite.
pour éviter cela, il faut que le "classement soit le même sur le serveur lié, il doit y avoir une case à cocher au niveau du paramètrage du serveur lié, je ne sais plus si c'est possible avec un 6.5
HTH
br
"JeeCee" wrote in message news:cesvm3$1nh6$
Bonjour,
J'ai un vrai problème de performance d'interogation des données sur une table distante (liè).
J'ai deux serveurs SQL. Server 1 : SQL 6.5 Server 2 : SQL 2000 Server
La table en question est sur le server1. Elle contient 200 000 enregistrements.
Server1 est déclaré comme serveur lié sur server2, via une connection native OleDb.
1) En se connectant directement sur le serveur Server 1 :
Select * From myDb.dbo.myTable Where condition1 & condition2 & ...
Les filtres portent uniquement sur la clef primaire; La requête doit me retourner uniquement un seul enregistrement.
durée << 1s (qqes ms)
2) La même requête sur le server 2 :
Select * From Server1.myDb.dbo.myTable Where condition1 & condition2 & ...
2 min...!!!!
N.B. : Précision. Server2 est ma machine de dév. Dans le premier cas : Je lance l'analyseur de requête sur server2 Ouvre la connection sur server1 et attaque directement la table
Dans le deuxième cas, je lance l'analyseur de requête toujours sur server2 Ouvre ma connection sur server2, puis attaque la table via la connection lié.