[ACCESS-VBA] Problème performances Local Vs Reseau incompréhensible

Problème performances Local Vs Reseau incompréhensible [ACCESS-VBA] - SQL/NoSQL - Programmation

Marsh Posté le 26-10-2007 à 14:23:03    

Bonjour,
 
Je dois alimenter une table à l'aide du code suivant:
 

Code :
  1. 'mettre des commentaires
  2. Public Function construire()
  3.     Dim n As Noeud, rst As Recordset, max As Long, arbre As Noeud, i As Long, j As Integer, col As Collection
  4.    
  5.     On Error GoTo handler
  6.     'initialisation de l table des données
  7.     Debug.Print Time & " - on efface l'arbre"
  8.     CurrentDb.Execute "delete from " & ARBRE_TABLE
  9.     Debug.Print Time & " - on charge toute les données l'arbre"
  10.     'on récupère l'identifiant max pour définir la taille du tableau
  11.     Set rst = CurrentDb.OpenRecordset("select max(IDENT) as idMax from FMB_FOLIO" )
  12.     ReDim noeuds(rst!idMax)
  13.     rst.Close
  14.     'on charge tous les noeuds
  15.     nb = 0
  16.     Set rst = CurrentDb.OpenRecordset("VB_Noeuds" )
  17.     Do While (Not rst.EOF)
  18.         If (rst!mgr <= UBound(noeuds)) Then
  19.             Set n = New Noeud
  20.             nb = nb + 1
  21.             n.setPrimaryProperties rst!ident, "" & rst!Name, "" & rst!ID_SECTION
  22.             If (noeuds(rst!mgr) Is Nothing) Then
  23.                 Set noeuds(rst!mgr) = New Collection
  24.             End If
  25.             noeuds(rst!mgr).Add Item:=n
  26.             If (nb Mod 5000 = 0) Then Debug.Print nb
  27.         Else
  28.         ''Zak
  29.             Debug.Print rst!mgr & " is out of range"
  30.         ''Zak
  31.         End If
  32.         rst.MoveNext
  33.     Loop
  34.     rst.Close
  35.     Set rst = Nothing
  36.     'on construit l'arbre
  37.     Debug.Print Time & " - on construit le nouvel arbre"
  38.     CurrentDb.Execute "VB_Arbre_Ajout_Racine" 'on ajoute la racine
  39.     Set arbre = New Noeud
  40.     arbre.setPrimaryProperties 1, "racine", ""
  41.     arbre.depth = 0
  42.     chargerNoeud arbre
  43.     Debug.Print Time & " - on sauve les données"
  44.     nb = 0
  45.     Set rst = CurrentDb.OpenRecordset(ARBRE_TABLE, dbOpenTable, dbAppendOnly)
  46.     With rst
  47.         For i = 1 To UBound(noeuds)
  48.             Set col = noeuds(i)
  49.             If (Not col Is Nothing) Then
  50.                 For j = 1 To col.Count
  51.                     Set n = col.Item(j)
  52.                     .AddNew
  53.                      !Name = n.nom
  54.                      !ident = n.ident
  55.                      ''Zak
  56.                      If (Not n.pere Is Nothing) Then
  57.                         !mgr = n.pere.ident
  58.                      Else
  59.                         Debug.Print "the father of " & n.ident & " is not defined"
  60.                      End If
  61.                      ''Zak
  62.                      !ID_SECTION = n.section
  63.                      !depth = n.depth
  64.                     .Update
  65.                     nb = nb + 1
  66.                     If (nb Mod 500 = 0) Then Debug.Print nb
  67.                 Next j
  68.             End If
  69.         Next i
  70.     End With
  71.     Debug.Print Time & " - l'arbre est finalisé"
  72. handler:
  73.     Debug.Print Time & " - L'arbre n'a pu être mis à jour " & Err.description
  74.     'on sauve l'arbre
  75. End Function


 
Si je l'execute en local ca met 10 sec , en reseau plus de 20 min...
 
Je ne comprend vraiment pas...Le volume traité est pas enorme en plus...
 
 
Merci d'avance

Reply

Marsh Posté le 26-10-2007 à 14:23:03   

Reply

Marsh Posté le 26-10-2007 à 16:06:02    

Quelle version d'access ?
Quand tu dis "en réseau", c'est-à-dire ? Tu as un mdb avec les tables sur un ordi distant, et un mdb avec le code avec des tables liées ? C'est bien ça ?
 
D'après les debug.print Time, c'est quelle partie du code qui est longue ? L'ajout des données je pense !


Message édité par kao98 le 26-10-2007 à 16:06:59

---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 26-10-2007 à 17:04:19    

si ca c'est pas de l'efficacité : même post sur plusieurs forums différents  :pt1cable:  
je hurle au spam [:sarko]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed