IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Lenteur de validation des transactions.


Sujet :

C++Builder

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    novembre 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2007
    Messages : 85
    Points : 42
    Points
    42
    Par défaut Lenteur de validation des transactions.
    Bonsoir,

    J'utilise Sqlite comme base de données sous C++ Builder XE7.

    Pour importer des données dans cette base, j'utilise un objet LMDCSV2DBImport, qui me permet de faire des importations par bloc, puis une commande du type ClientDataSet->ApplyUpdate(-1).

    Si la taille des donnes importées est assez grande, la validation de la transaction peut durer de nombreuses secondes.

    existe-il un moyen d'accélérer cette procédure.

    Merci pour toute réponse.

  2. #2
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    novembre 2006
    Messages
    8 030
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : novembre 2006
    Messages : 8 030
    Points : 19 328
    Points
    19 328
    Par défaut
    Citation Envoyé par LescureImage Voir le message
    J'utilise Sqlite comme base de données sous C++ Builder XE7.
    Si la taille des donnes importées est assez grande, la validation de la transaction peut durer de nombreuses secondes.
    existe-il un moyen d'accélérer cette procédure.
    Tout dépend comment sont faites les requêtes SQL
    Il faut écrire des procédures stockées sous SQLite.
    Sinon payer pour une solution Cloud genre Amazon Web Service ça sera plus rapide.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    juillet 2011
    Messages
    350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chef de projets retraité
    Secteur : Transports

    Informations forums :
    Inscription : juillet 2011
    Messages : 350
    Points : 917
    Points
    917
    Par défaut
    Bonjour,
    Citation Envoyé par Mat.M Voir le message
    Il faut écrire des procédures stockées sous SQLite.
    Pour autant que je sache, cela n'existe pas avec SQLITE.

    Pour importer des données dans cette base, j'utilise un objet LMDCSV2DBImport, qui me permet de faire des importations par bloc, puis une commande du type
    Je ne sais pas comment fonctionne ton outil mais pour les importations si l'insertion se fait ligne par ligne, SQLITE considère chaque ligne comme une transaction et c'est long...(Il y a écriture de journal, Ecriture de ligne, Effacement de journal à chaque fois)
    Pour accélérer il faut mettre l'importation sous transaction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    BEGIN TRANSACTION; 
    ...
    COMMIT;
    Cordialement

  4. #4
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    novembre 2006
    Messages
    8 030
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : novembre 2006
    Messages : 8 030
    Points : 19 328
    Points
    19 328
    Par défaut
    Citation Envoyé par acaumes Voir le message
    Bonjour,
    Pour autant que je sache, cela n'existe pas avec SQLITE.
    bonjour c'est exact mais sans possibilité de procédures stockées ça me parait difficile à part oui faire BEGIN COMMIT à chaque transaction.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    novembre 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2007
    Messages : 85
    Points : 42
    Points
    42
    Par défaut
    Ces outils d'importation permettent d'importer par blocs de données, et non ligne par ligne.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    juillet 2011
    Messages
    350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chef de projets retraité
    Secteur : Transports

    Informations forums :
    Inscription : juillet 2011
    Messages : 350
    Points : 917
    Points
    917
    Par défaut
    Citation Envoyé par LescureImage Voir le message
    Ces outils d'importation permettent d'importer par blocs de données, et non ligne par ligne.
    Oui mais cela ne me dit pas comment ils insèrent dans la base de données. Il peuvent le faire par bloc auquel cas la faible vitesse est anormale ou ligne par ligne et dans ce cas cela ne va pas très vite...

Discussions similaires

  1. Apropos des Transactions au sein d'un Stored Procedure
    Par Sarbacane dans le forum Connexion aux bases de données
    Réponses: 6
    Dernier message: 16/11/2004, 08h21
  2. dbgrid AND validation des données
    Par samlerouge dans le forum Bases de données
    Réponses: 10
    Dernier message: 11/06/2004, 23h08
  3. Annuler des transactions
    Par sgire dans le forum ASP
    Réponses: 2
    Dernier message: 04/05/2004, 09h31
  4. vider le journal des transactions
    Par coucoucmoi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/05/2004, 09h21
  5. gestion des transactions
    Par viny dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/03/2004, 21h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo