OVH Cloud OVH Cloud

temps de reponse...

4 réponses
Avatar
XOKO
Bonjour,
ce n'est pas de l'asp net donc je suis peut etre un peut hors sujet mais je
pose qd meme la question...
Bonjour,

Actuellement sur un sql server 2003 avec IIs 6

Je lance des pages asp et j'utilise le script suivant



set MyConn=server.createobject("adodb.connection")

MyConn.open "toto","toto","toto"



Lors de l'appelle d'une requete du type



sql="SELECT * FROM TOTO"



Set RS=MyConn.Execute(sql)



While not(RS.EOF)

...

next



Je n'ai pas de soucis mais des que je mets une requête dans mon while



While not(RS.EOF)



Sql2="SELECT * FROM TOTO2 where ."



Set RS2=MyConn.Execute(sql2)



next



c'est la cata au niveau des temps de réponse du serveur ????

Le script fonctionnait tres bien sur mon SQL7 avant que le le transfert sur
une nouvelle machine.

Avez-vous une idée d'où peut venir ce problème ?





Merci



Franck

4 réponses

Avatar
Paul Bacelar
"XOKO" wrote in message
news:42b16f8d$0$2526$
Bonjour,
ce n'est pas de l'asp net donc je suis peut etre un peut hors sujet mais


je
pose qd meme la question...
Bonjour,

Actuellement sur un sql server 2003 avec IIs 6

Je lance des pages asp et j'utilise le script suivant



set MyConn=server.createobject("adodb.connection")

MyConn.open "toto","toto","toto"



Lors de l'appelle d'une requete du type



sql="SELECT * FROM TOTO"



Set RS=MyConn.Execute(sql)



While not(RS.EOF)

...

next



Je n'ai pas de soucis mais des que je mets une requête dans mon while



While not(RS.EOF)



Sql2="SELECT * FROM TOTO2 where ."



Set RS2=MyConn.Execute(sql2)



next



c'est la cata au niveau des temps de réponse du serveur ????

Le script fonctionnait tres bien sur mon SQL7 avant que le le transfert


sur
une nouvelle machine.

Avez-vous une idée d'où peut venir ce problème ?





Merci



Franck




Le comportement me semble normal car faire une requête dans une boucle
augmente considérablement le nombre de requête SQL donc la RAM utilisé, la
bande passante utilisée, le temps CPU utilisé etc..

Si votre boucle sert à faire l'équivalent d'un TABLE SCAN, autant vous
arranger, avec une requête un tantinet plus compliquée, pour que le SGBDR le
fasse pour vous.


--
Paul Bacelar
Avatar
XOKO
Bonjour,
je suis bien d'accord avec vous mais cette requete me sert a tester mon
serveur et pour le moment ce n'est pas tres probant.
Cela passait mieux avec une machine moins performante et sql 7 ....
Je cherche surtout a comprendre pourquoi .

Encore merci


"Paul Bacelar" a écrit dans le message
de news:
"XOKO" wrote in message
news:42b16f8d$0$2526$
Bonjour,
ce n'est pas de l'asp net donc je suis peut etre un peut hors sujet mais


je
pose qd meme la question...
Bonjour,

Actuellement sur un sql server 2003 avec IIs 6

Je lance des pages asp et j'utilise le script suivant



set MyConn=server.createobject("adodb.connection")

MyConn.open "toto","toto","toto"



Lors de l'appelle d'une requete du type



sql="SELECT * FROM TOTO"



Set RS=MyConn.Execute(sql)



While not(RS.EOF)

...

next



Je n'ai pas de soucis mais des que je mets une requête dans mon while



While not(RS.EOF)



Sql2="SELECT * FROM TOTO2 where ."



Set RS2=MyConn.Execute(sql2)



next



c'est la cata au niveau des temps de réponse du serveur ????

Le script fonctionnait tres bien sur mon SQL7 avant que le le transfert


sur
une nouvelle machine.

Avez-vous une idée d'où peut venir ce problème ?





Merci



Franck




Le comportement me semble normal car faire une requête dans une boucle
augmente considérablement le nombre de requête SQL donc la RAM utilisé, la
bande passante utilisée, le temps CPU utilisé etc..

Si votre boucle sert à faire l'équivalent d'un TABLE SCAN, autant vous
arranger, avec une requête un tantinet plus compliquée, pour que le SGBDR
le
fasse pour vous.


--
Paul Bacelar




Avatar
Paul Bacelar
Le fait de mettre un index sur "TOTO2" change complètement la donne.

Pour faire de l'optimisation, il faut prendre en compte un nombre exorbitant
de paramètres que vous ne nous fournissez pas.

Si votre programme sert de benchmark, il me semble pour le moins
rudimentaire.
--
Paul Bacelar



"XOKO" wrote in message
news:42b289c5$0$11355$
Bonjour,
je suis bien d'accord avec vous mais cette requete me sert a tester mon
serveur et pour le moment ce n'est pas tres probant.
Cela passait mieux avec une machine moins performante et sql 7 ....
Je cherche surtout a comprendre pourquoi .

Encore merci


"Paul Bacelar" a écrit dans le message
de news:
> "XOKO" wrote in message
> news:42b16f8d$0$2526$
>> Bonjour,
>> ce n'est pas de l'asp net donc je suis peut etre un peut hors sujet


mais
> je
>> pose qd meme la question...
>> Bonjour,
>>
>> Actuellement sur un sql server 2003 avec IIs 6
>>
>> Je lance des pages asp et j'utilise le script suivant
>>
>>
>>
>> set MyConn=server.createobject("adodb.connection")
>>
>> MyConn.open "toto","toto","toto"
>>
>>
>>
>> Lors de l'appelle d'une requete du type
>>
>>
>>
>> sql="SELECT * FROM TOTO"
>>
>>
>>
>> Set RS=MyConn.Execute(sql)
>>
>>
>>
>> While not(RS.EOF)
>>
>> ...
>>
>> next
>>
>>
>>
>> Je n'ai pas de soucis mais des que je mets une requête dans mon while
>>
>>
>>
>> While not(RS.EOF)
>>
>>
>>
>> Sql2="SELECT * FROM TOTO2 where ."
>>
>>
>>
>> Set RS2=MyConn.Execute(sql2)
>>
>>
>>
>> next
>>
>>
>>
>> c'est la cata au niveau des temps de réponse du serveur ????
>>
>> Le script fonctionnait tres bien sur mon SQL7 avant que le le transfert
> sur
>> une nouvelle machine.
>>
>> Avez-vous une idée d'où peut venir ce problème ?
>>
>>
>>
>>
>>
>> Merci
>>
>>
>>
>> Franck
>
>
> Le comportement me semble normal car faire une requête dans une boucle
> augmente considérablement le nombre de requête SQL donc la RAM utilisé,


la
> bande passante utilisée, le temps CPU utilisé etc..
>
> Si votre boucle sert à faire l'équivalent d'un TABLE SCAN, autant vous
> arranger, avec une requête un tantinet plus compliquée, pour que le


SGBDR
> le
> fasse pour vous.
>
>
> --
> Paul Bacelar
>
>




Avatar
XOKO
Bonjour,
rudimentaire mais efficace ...
J'ai trouvé la solution qui ne venait en fait pas de SQL server mais de ma
chaine de connexion en ASP
Je donne la solution car j'ai mis un bout de temps a trouver
Il faut savoir que j'ai deux serveurs identique et que sur l'un ca passe et
l'autre j'ai eu le probleme.
( il ne doivent pas etre si identique que ca mais bon la conf est pourtant
la meme )
Il faut savoir que j'ai modifier le port standard de sql 1433 en XXXX
j'ai donc une chaine de connexion du type

Set MyConn = Server.CreateObject("ADODB.Connection")
connstring = "driver={SQL Server}; server=toto;uid=titi;
pwd=tutu;database=toto"
MyConn.open connstring
et la ca ne passe pas alors que sur l'autre serveur et mon ancien aucun
probleme
par contre
Set MyConn = Server.CreateObject("ADODB.Connection")
connstring = "driver={SQL Server}; server=toto,XXXX;uid=titi;
pwd=tutu;database=toto"
MyConn.open connstring
avec le ,XXXX precision du port cela passe
d'ou provient ce probleme je ne sais pas en tout cas le fait de preciser le
port me semble plus carré donc ..

Merci a vous

PS: si quelqu'un peut m'expliquer ce phenomene ...





"Paul Bacelar" a écrit dans le message
de news: d97jk1$4e4$
Le fait de mettre un index sur "TOTO2" change complètement la donne.

Pour faire de l'optimisation, il faut prendre en compte un nombre
exorbitant
de paramètres que vous ne nous fournissez pas.

Si votre programme sert de benchmark, il me semble pour le moins
rudimentaire.
--
Paul Bacelar



"XOKO" wrote in message
news:42b289c5$0$11355$
Bonjour,
je suis bien d'accord avec vous mais cette requete me sert a tester mon
serveur et pour le moment ce n'est pas tres probant.
Cela passait mieux avec une machine moins performante et sql 7 ....
Je cherche surtout a comprendre pourquoi .

Encore merci


"Paul Bacelar" a écrit dans le
message
de news:
> "XOKO" wrote in message
> news:42b16f8d$0$2526$
>> Bonjour,
>> ce n'est pas de l'asp net donc je suis peut etre un peut hors sujet


mais
> je
>> pose qd meme la question...
>> Bonjour,
>>
>> Actuellement sur un sql server 2003 avec IIs 6
>>
>> Je lance des pages asp et j'utilise le script suivant
>>
>>
>>
>> set MyConn=server.createobject("adodb.connection")
>>
>> MyConn.open "toto","toto","toto"
>>
>>
>>
>> Lors de l'appelle d'une requete du type
>>
>>
>>
>> sql="SELECT * FROM TOTO"
>>
>>
>>
>> Set RS=MyConn.Execute(sql)
>>
>>
>>
>> While not(RS.EOF)
>>
>> ...
>>
>> next
>>
>>
>>
>> Je n'ai pas de soucis mais des que je mets une requête dans mon while
>>
>>
>>
>> While not(RS.EOF)
>>
>>
>>
>> Sql2="SELECT * FROM TOTO2 where ."
>>
>>
>>
>> Set RS2=MyConn.Execute(sql2)
>>
>>
>>
>> next
>>
>>
>>
>> c'est la cata au niveau des temps de réponse du serveur ????
>>
>> Le script fonctionnait tres bien sur mon SQL7 avant que le le
>> transfert
> sur
>> une nouvelle machine.
>>
>> Avez-vous une idée d'où peut venir ce problème ?
>>
>>
>>
>>
>>
>> Merci
>>
>>
>>
>> Franck
>
>
> Le comportement me semble normal car faire une requête dans une boucle
> augmente considérablement le nombre de requête SQL donc la RAM utilisé,


la
> bande passante utilisée, le temps CPU utilisé etc..
>
> Si votre boucle sert à faire l'équivalent d'un TABLE SCAN, autant vous
> arranger, avec une requête un tantinet plus compliquée, pour que le


SGBDR
> le
> fasse pour vous.
>
>
> --
> Paul Bacelar
>
>