ADO et utilisation CPU

spoz13 Messages postés 2 Date d'inscription jeudi 13 novembre 2003 Statut Membre Dernière intervention 10 décembre 2003 - 10 déc. 2003 à 10:31
gaa179 Messages postés 361 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 12 novembre 2009 - 10 déc. 2003 à 14:16
Bonjour,

c'est mon premier post sur le forum ;-)

j'essaie de mettre à jour une base de données SQL Server (environ 8000 enregistrements), je me connecte via ADO :

Dim conn As New ADODB.Connection

conn.ConnectionString = "UID=" & DBLOGIN & ";PWD=" & DBPASS & ";" & "DRIVER={SQL Server};Server=" & DBSERVER & ";Database=" & DBBASE & ";"

conn.Open

Dim rs As New ADODB.Recordset

Seulement lors de l'exec du prog le CPU s'emballe au alentours de 90%, est ce une fatalité ? peut etre y a t il un autre moyen de me connecter a la BD ?

Merci de votre aide

SpOz
SpOz

3 réponses

gaa179 Messages postés 361 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 12 novembre 2009 2
10 déc. 2003 à 11:10
Salut,

Plutôt que te connecté en ODBC, essaye OLE DB
Syntaxe
Cn.ConnectionSTring = "Provider=SQLOLEDB;Server=" & DBSERVER & "; Database=" & DBBASE & ";UID=" & DBLOGIN & ";PWD=" & DBPASS & ";"

A+
0
spoz13 Messages postés 2 Date d'inscription jeudi 13 novembre 2003 Statut Membre Dernière intervention 10 décembre 2003
10 déc. 2003 à 14:02
merci de ton aide,

mais meme montée en charge du CPU que ce soit avec ODBC ou OLEDB, et le pire c'est que j'execute mes progs directement sur le serveur SQL...

SpOz
0
gaa179 Messages postés 361 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 12 novembre 2009 2
10 déc. 2003 à 14:16
Si ton process augmente comme celà sur le serveur, si le temps de réponse est rapide alors c'est normale. Par exemple, si tu fais un update sur 8000 records, la charge CPU va augmenter fortement pour executer ce traitement.
Si la charge CPU dure 30 ou 40 sec pour execute un select sur une table de 50 records, alors le problème vient dans l'optimalisation de tes StoreProcedure, trigger, ... et des Indexes dans tes tables. Pour t'aider à trouver les temps de réponse utilise Query analyser avec Show Exution plan Vérifie qu'il n'y a pas ou le minimum d'Eclusive locked.
Tu peux aussi utiliser SQL profiler pendant l'execution de ton application pour déterminer ce qui prend des ressources de ta machine.

Bon courrage.
0
Rejoignez-nous