Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/05/2007, 15h19   #1
Invité de passage
 
Inscription : octobre 2004
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 7
Points : 3
Points : 3
Par défaut INSERT temps execution

Bonjour,

Je me pose la question si on peut ameliorer le temps d'execution d'une simple requete d'insertion.

INSERT INTO table(x,y,z) VALUES(10,15,2);

J'ai execute la requete dans MySQL directement et ca me donne en moyenne 40 ms pour inserer un nouvel enregistrement dans la table.

Peut-on ameliorer ce temps d'execution parce qu'il ne serait pas rare que je doive inserer plusieurs milliers d'enregistrements.

Merci

Christian
spy1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2007, 15h29   #2
Membre expérimenté
 
Étudiant
Inscription : juillet 2004
Messages : 777
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2004
Messages : 777
Points : 527
Points : 527
Ben un INSERT est un INSERT je voit pas comment on pourrai reduire le temps...
cerede2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2007, 17h19   #3
Invité de passage
 
Inscription : octobre 2004
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 7
Points : 3
Points : 3
Par défaut Insert

Dommage que MySQL ne soit pas aussi performante a l'insertion de nouveaux enregistrements. Le temps d'execution des requetes Select semble tres satisfaisant.

Je me trouve alors dans une impasse a present :-(

Merci

Christian
spy1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2007, 17h51   #4
Membre expérimenté
 
Étudiant
Inscription : juillet 2004
Messages : 777
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2004
Messages : 777
Points : 527
Points : 527
Mais je comprend pas, pourquoi a tu a faire des milliers d'INSERT?
Si tu nous explique un peu on pourra peut etre voir a trouve une solution...
cerede2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2007, 18h30   #5
Invité de passage
 
Inscription : octobre 2004
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 7
Points : 3
Points : 3
J'ai une application ecrit en C# qui communique avec un serveur SQL. Une des tables de la base de donnees contient un champs commentaires (chaine de caracteres). Je n'entrerai pas dans les details, mais je peux resumer le systeme... La table contient des enregistrements de comptes usagers et je peux en avoir plusieurs milliers d'usagers. Une des fonctions particulieres de l'application permet d'enregistrer des commentaires specifiques a un usager. Mais je peux enregistrer le meme commentaire a plusieurs usagers en envoyant plusieurs requetes INSERT.

Par exemple, si je selectionne 1500 usagers et je veux enregistrer le commentaire "Allo" a tout ces usagers, alors j'envoie un par un la requete INSERT aux usagers specifiés.

Voila, j'espere que vous comprenez ce que j'essaie de faire.

Merci

Christian
spy1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2007, 10h13   #6
Membre régulier
 
Inscription : juillet 2003
Messages : 83
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 83
Points : 90
Points : 90
Bonjour,

INSERT INTO table(x,y,z) VALUES(10,15,2), (20,21,22), (30,31,32), ... (Xi,Xj,Xk) est déjà plus rapide

Autre solution : Passer par les méthodes addBatch et executeBatch
1) addBatch permet d'ajouter les INSERTS à 1 Statement
(instanciè par createStatement appliqué sur 1 connexion)
2) executeBatch lance ces inserts en 1 seule passe (par conséquent c'est + rapide)

ça fonctionne en jdbc, on doit trouver l'équivalent en C#

Cdlt

Selecta
selecta est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h56.


 
 
 
 
Partenaires

Hébergement Web