Ralentissement de traitement sql server 7 et vb 6

obic2000 Messages postés 8 Date d'inscription jeudi 6 octobre 2005 Statut Membre Dernière intervention 5 novembre 2005 - 6 oct. 2005 à 10:56
amahoro Messages postés 1 Date d'inscription mercredi 16 mars 2005 Statut Membre Dernière intervention 24 octobre 2005 - 24 oct. 2005 à 09:41
Bonjour,

J'ai une application qui traité plus de 5000 enreg. à l' heure ( recordset ado, update ).
Depuis qq jours il tourne qu à 500 enreg. à l 'heure.

outils de devlop. : vb 6
sgbdr : slq server 7
recordset : ado 6
serveur : 4 process et 2 giga de ram.

Nb : - J ai changé de serveur , c'est idem.
- J'ai lancé en local ( appli et bdd ) -> idem
- J ai lance sur une autre bdd - > idem

Si c'est ni serveur, ni appli et ni réseau. ?????

Quelqu un peut m aider svp

14 réponses

obic2000 Messages postés 8 Date d'inscription jeudi 6 octobre 2005 Statut Membre Dernière intervention 5 novembre 2005
6 oct. 2005 à 11:00
J ai oublié de préciser ça : OS : Windows 2000 advanced serveur , windows 2000 pro.
0
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
6 oct. 2005 à 17:45
hé bien...
qu'as tu fait ces derniers jours ? :)

il s'agit de quel type de requete ? insert, select, update ?


La premier chose à vérifier, est si tu as changé ou supprimé des index dans la base.


sinon est-ce que tu ne peux pas en créer qui pourrait acceler la requetes ?


Est ce que le ralentissement est vraiment venu d'un seul coup ???


si tu fait des requetes INSERT dans une table, celle ci va grossir de plus en plus, en ca peut ralentir le traitement (temps de recaclul des index plus long)


sinon est ce que tu n'a pas ajouté un trigger sur une des tables impactées ?
0
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
6 oct. 2005 à 17:49
pardon, je n'avais pas vu que tu precisais que c'etait des requtes update.
il n'y a que des updates ?

est-ce qu'un autre processus accede a cette table pour UPDATE, DELETE, ou INSERT ?

si c'est la cas, ca peut causer des locks le temps que ces requetes aboutissent, et pendant ce temps la ton programme attend...
0
obic2000 Messages postés 8 Date d'inscription jeudi 6 octobre 2005 Statut Membre Dernière intervention 5 novembre 2005
6 oct. 2005 à 18:04
Tout d'abord merci d y avoir s' interesser.
- Je n ai pas modifé les codes.
- Je n ai pas supprimé les index non +
- Pas de nouveux index à créer d'après ( generateur de profils . 0 % d'opt.)

Voice ce que j utilise dans mes codes ( exemple )

Dim lRST as new adodb.recordset

lrst.open "selection",cnx,...,...

do while not lrst.eof
.....
..... ' Je consulte d'autres tables x, y ,z
lrst!xxx= xxxxxx
lrst.update
....
loop

C'est bizarre ça tourné bien il y a qq semaine
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
6 oct. 2005 à 18:11
et la table cible n'a pas grossit ?
le ralentissement est venu subitement ?


t'as essayé de regarder dans le plan d'execution de ta requete (sous le query analyzer de SQL server) ce qui prenait du temps dans l'execution de ta requete ?
0
obic2000 Messages postés 8 Date d'inscription jeudi 6 octobre 2005 Statut Membre Dernière intervention 5 novembre 2005
6 oct. 2005 à 18:18
- La table cible est jamais la mm ( c qq soit la table cible ). une table de 1000 ou 500, 8000 etc....

- ral. est venu subit....

- oui j ai regardé. Les pb ce que j 'ai aux moins une 20 n de req.
une req. qui va consulté la table x puis une autre qui va voir table y etc...

NB : Je ne peux pas utiliser inner join ( ces tables ne reliables entre eux )
0
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
10 oct. 2005 à 13:47
Vous pouvez essayer d'exécuter cette procédure stockée :
- http://www.sqlfr.com/code.aspx?ID=29623

Ca vous mettra à jour toutes les statistiques. Regardez si ca permet de gagner de la vitesse.

Romelard Fabrice (Alias F___)
0
obic2000 Messages postés 8 Date d'inscription jeudi 6 octobre 2005 Statut Membre Dernière intervention 5 novembre 2005
11 oct. 2005 à 09:04
Merci Fabrice pour cette proc.
Malheuresement, ça n'a pas résolu mon pb.
Est-ce qu'il y a une connexion sql optimisé ?
Voici ma cnx actuelle :

Set Gi.Cnx = New ADODB.Connection


'Connexion Sql
With Gi.Cnx
.Provider = "Sqloledb" ' Microsoft SQL Server.
'Nom du serveur
.Properties("Data Source") = "MSS"
'SQL Serveur
.Properties("User ID").Value = "xxxxx"
.Properties("Password").Value = "yyyyy"
.ConnectionTimeout = 0
.CommandTimeout = 0
.Open
End With

J'ai essayé également authent. nt avec sspi. C 'est idem
0
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
11 oct. 2005 à 22:44
Quelle version de la MDAC est installée sur le client et le serveur ?
Quelle version de Service Pack sur le serveur SQL ?

Il faudrait faire un profiling sur la base en cours d'utilisation pour voir ce qui est appelé sur celui-ci.
Il y a peut-être un autre utilisateur qui pose problème.

Romelard Fabrice (Alias F___)
0
obic2000 Messages postés 8 Date d'inscription jeudi 6 octobre 2005 Statut Membre Dernière intervention 5 novembre 2005
12 oct. 2005 à 09:24
Pour savoir si ça vient de réseau. voici ce que j'ai fait :

-J'ai installé sql server 7.0 avec sp4 sur mon pc ( en local ) + bdd.
-J'ai débranché le câble réseau pour être sur d'être en local.
- Et je suis le seul utilisateur

C'est idem, le traitement ne tourne pas vite et je dirai mm que c'est + lent en local.

config . de mon pc :

Win2000pro avec sp4, mdac 2.8, vb6, 512 mo de ram.....

nb: generateur de profils + ass. indexation -> propose 0 % d'opt. ( les index existent déjà ).
0
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
12 oct. 2005 à 17:41
bah si on en revient a la base du probleme :

ca fonctionnait, et ca ne fonctionne plus.

c'est donc qu'il y a eu une modification qui a impacté le systeme.

il faut donc reprendre tout ce qui a été fait entre le moment ou ca marchait et le moment ou tu t'es rendu compte que ca ne marchait plus aussi bien

as tu modifié le programme ?
as tu modifié la base ?
as tu modifé autre chose qui pourrait entrer en jeu ?


sinon y a t-il d'autres utilisateurs/applications qui accedent a cette base ?
0
obic2000 Messages postés 8 Date d'inscription jeudi 6 octobre 2005 Statut Membre Dernière intervention 5 novembre 2005
12 oct. 2005 à 17:50
Pas de modif. au niveau de prog.
Je n ai pas modié non plus la base. J 'ai essayé sur une bdd -> idem
ça ne peut pas être utilisateurs ni appli car j ai testé en local c est pareil
0
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
12 oct. 2005 à 21:05
Dans ce cas, tout s'est fait par magie. ET comme dit l'expression tout ce qui a été fait par la magie ne peut être défait que par la magie :)) (cf les soeurs alliwell).

Bref, si rien n'a changé au niveau du prog et de la base, n'y a t'il pas eu l'installation d'un nouveau patch sur les machines (services pack ou hotfix) ?

Romelard Fabrice (Alias F___)
0
amahoro Messages postés 1 Date d'inscription mercredi 16 mars 2005 Statut Membre Dernière intervention 24 octobre 2005
24 oct. 2005 à 09:41
Bjr si ; je voudrais vous aide mais moi aussi j'ai un pbme peut me dire comment je peus executer une requete en vb qui me permettra de changer les données de mon base de données aussi bien la connection à ce dernier merci à
la prochaine.
0
Rejoignez-nous