Accès table sous SQLServer2000

blowlagoon Messages postés 38 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 26 mars 2007 - 17 juin 2003 à 10:58
codea Messages postés 94 Date d'inscription dimanche 9 mai 2004 Statut Membre Dernière intervention 6 août 2006 - 18 juin 2005 à 20:28
Bonjour,
J'ai un module VB qui permet d'ajouter dse enregistrement ds une base SQL SErver 2000 sur une server à distance (interface à Paris - Base à londres). L'ajout des enregistrements prend enormément de temps et cela lors de l'accès à la table. Je voulais savoir comment faire pour accèlerer le traitement sachant que la table contient environ 6600 records. le code pour etablir la connexion et l'ouvrture de la table est le suivant:

'Alimentation de la table T_COMPARTIMENT_COMPLET

Set rsCompartiment = New ADODB.Recordset
rsCompartiment.CursorType = adOpenKeyset
rsCompartiment.LockType = adLockOptimistic
rsCompartiment.Open "T_COMPARTIMENT_COMPLET", connDB, , , adCmdTable

Merci de votre aide.

3 réponses

Boboss99 Messages postés 54 Date d'inscription lundi 13 janvier 2003 Statut Membre Dernière intervention 30 juin 2004
17 juin 2003 à 12:16
si c'est le transert réseau qui est long y'a pas grd chose à faire ...
sinon on peut optimiser une base en fesant des index ou clusturiser les données par exemple.
mais toute l'optimisation se fait au niveau sql serveur et non en vb
j'espère que ca t'aidera un petit peu
bon courage @+ ;o)

Boboss
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
17 juin 2003 à 23:55
Pour t'aider un peu plus tu peux utiliser splitter (decouper) ton fichier et gerer des transactions
de plus tu peux faire marcher les procedures stockées qui fait plus travailler le serveur que de BDD et moins l'appli.

il est peut etre possible de transferer ton fichier d'enr par ftp
et de le faire charger ensuite par le serveur de bdd.
(par un serveur web par exemple
une requete GET --> declement du traitement donc moins de perte de temps pendant le transfert)

Sinon les autres idées sont bonnes clusters (cher et compliqué à mettre en place je pense) et plutot utilisé si plusieurs clients qui se connectent pour equilibrer les charges mais c'est peut etre pas le cas chez toi.

les index mais c'est plutot utile pour la recherche et je crois meme que c'est un handicap pour l'insertion car a chaque insertion il faut calculer les index de l'enr.

pour resumer
--> transactions
--> procedures stockee transact sql
--> deplacement du fichier de données
0
codea Messages postés 94 Date d'inscription dimanche 9 mai 2004 Statut Membre Dernière intervention 6 août 2006
18 juin 2005 à 20:28
Donne nous plus de détails sur la façon dont tu ajoutes des enregistrements dans la table ...


par exemple tu pourais faire un Update batch au lieu d'un utpdate sur chaque champ modifié de ton recordset dans Vb6

Je dis ca comme ca mais faudrait savoir un peu plus sur la manière dont tu envoie des données ... les envoyer en paquet et les traiter toutes en meme temps ... la charge d'un réseau comme internet est assée aléatoire ... utiliser un VPN pourrait peut-etre t'aider mais je connais pas suffisament le sujet ...

Bonne chance pour la continuité de ton projet @plus ;o)

CoDe_A
0
Rejoignez-nous