begin process at 2010 02 09 22:18:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Base de données

 > 

Access

 > 

lenteur access provenant d'un record


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

lenteur access provenant d'un record

mercredi 9 août 2006 à 10:50:58 | lenteur access provenant d'un record

vodkha

Bonjour,

j'ai un prob avec une base access. je dois insérer des données provenant d'un record (environs 12'000) dans une BD Access. Cela fait donc 12'000 insert -> très lent environs 1min.

Il me faut absolument réduire ce temps d'insertion.   Quelle méthode devrais-je utiliser ?

Merci de votre aide
mercredi 9 août 2006 à 18:20:02 | Re : lenteur access provenant d'un record

f0xi

Membre Club Administrateur CodeS-SourceS
mmm ce serat long.

je sais que dans un TFileStream cette routine serait trés rapide. dans une base de données, l'insertion est plus lente.
la lecture en memoire des données (des structures) doit etre relativement plus rapide que l'enregistrement.

1 minute pour 12000  (200 insert/sec)  ça me parait etre un ratio assé faiblard.

pourrait tu nous copier/coller le code de ta structure, comment tu la stock et comment tu l'insert dans la BDD ?



Croc (click me)
jeudi 10 août 2006 à 08:48:34 | Re : lenteur access provenant d'un record

vodkha

Toutes les données proviennent d'une TList. Cette TList est une structure Record (en-tête de l'entraînement et données entraînement)

Dans ma table Access, j'ai 3 tables (athlètes, entraînement et temps)

Lorsque l'utilisateur descend les données depuis son appareil, cela alimente ma TList.

J'ajoute un entraînement dans la table entraînement avec une reqûete SQL qui insère l'entête entraînement de la TList.

Dans cette entête de l'entraînement (dans BD) des données doivent être notifiées par l'utilisateur c'est pourquoi j'effectue un update de différent champ de la Table entrainement (procedure UpdateBD).

J'alimente ensuite ma table Temps (jointure avec Table entraînement) avec procedure InsertBDTemps

// Ajout entête entraînement
INSERT INTO T_ENTRAINEMENT (entr_vers_chip, entr_no_dossard, entr_nb_lap, entr_date, entr_heure, entr_tps_tot, entr_assiste, entr_tps_assiste, entr_temps_arret_auto, entr_tps_safety, entr_nb_lap_radio, entr_distance, entr_compensation, entr_mode, entr_tps_zone5, entr_tps_zone4, entr_tps_zone3, entr_tps_zone2, entr_tps_zone1, entr_poids,entr_fcrepos, entr_athle_num)VALUES (:ParamVersChip,:ParamDossard,:ParamNbLap,:ParamDate,:ParamHeure,:ParamTempsTot,:ParamAssiste,:ParamTempsAssiste,:ParamArretAuto,:ParamSafety,:ParamRadio,:ParamDistance,:ParamComp,:ParamMode,:ParamZone5,:ParamZone4,:ParamZone3,:ParamZone2,:ParamZone1,:ParamPoids,:ParamFCrepos,:ParamAthlenum);


// Mise à jour base de données
UpdateBD;
UPDATE T_ENTRAINEMENT SET entr_disc_nom=:ParamNomDisc,entr_comment=:ParamComment,entr_compensation=:ParamCompensation,entr_poids=:ParamPoids,entr_fcrepos=:ParamFcRepos 
WHERE entr_num=:ParamNum;

// Ajout des données dans la table Temps
for i := 1 to FList.Count-1 do
begin
ptr_lap := FList.Items[i];
InsertTempsBD;
end; // end for
Insert Into T_TEMPS
(temps_lap, temps_comp,temps_cardio, temps_entr_num, temps_type, temps_no, temps_fc)
values(:ParamTempsLap,:ParamTempsComp,:ParamCardio,:ParamEntrNum,:ParamTempsType,:ParamTempsNo,:ParamTempsFC);





Cette discussion est classée dans : access, record, lenteur, provenant, environs


Répondre à ce message

Sujets en rapport avec ce message

Requêtes sur une Base Access ? [ par Gerard ] Je souhaiterai savoir quelles sont les moyens les plus performants pour réaliser des requêtes sur une base Access et que me conseillez-vous ?(SQL,...) comparatif paradox et access [ par laurent ] Salut,Pour l'instant j'utilise dans mon programme des bases paradox. Est-ce que l'utilisation de bases access seraient plus rapide et plus stable ?Si planing [ par pasoif ] bonjourca fait au moins un an que je cherche a faire un planing sous access ou nimporte quelle autre log de base de donne et je ne trouve pas de solu Administrateur BDE & Access [ par Vinch ] Salut à tous,J'ai créer une BD sous Access2002 (XP) et je l'ai convertie au format 97, puis j'ai créer un alias avec un driver natif MSACCESS. Tout s' Access [ par Shadow ] Salut, y'a un moyen d'écrire,lire,supprimer, dans une base de donnée Access? mot de passe ACCESS [ par lguez ] Je suis en train d'écrire une appli qui utilise une BD ACCESS sous DELPHI 5, J'ai vu dans le forum comment retirer la fenêtre de mot de passe ACCESS, Pb TDBCombobox + Table ACCESS [ par lguez ] Bonjour,Dans une table ACCESS, j'ai 3 colonnesidVentil : numAuto (clé primaire)Ventilation : entierlibellé : stringSous Delphi, j'ai une Form qui cont diffusion Delphi Access [ par MDR ] J'ai réalisé une application sous Delphi V qui utilise une base de données ACCESS.L'application fonctionne correctement.Lorsque je la diffuse certains création de vue avec access ? [ par tgomas ] je bosse sur une appli interfacée avec access, j'ai une requête qui crée une vue (CREATE VIEW...), mais à l'éxecution j'ai l'erreur 'Erreur de syntaxe TDatabase, connexion a base access dynamique [ par usmok ] je voudrais pouvroir associer mon TDatabase à un bdd Access à l'exécution,le tout sans utiliser de lien ODBCles valeurs de mon database sont initialis


Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales