# rapidité SQL sous TCL

**URL:** <https://www.debian-fr.org/t/rapidite-sql-sous-tcl/68300>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 10:18 UTC](https://www.debian-fr.org/t/rapidite-sql-sous-tcl/68300 "2016-02-21T22:18:40Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Hanselmault](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/h/b5a626/32.png) [@Hanselmault](https://www.debian-fr.org/u/Hanselmault)\
**Post date:** [Février 21, 2016, 10:18 UTC](https://www.debian-fr.org/t/rapidite-sql-sous-tcl/68300/1 "2016-02-21T22:18:40Z")

</div>

Bonjour à tous,

exécuter ces lignes de commandes prennent beaucoup de temps quand on en a 5000 à faire:  
db1 eval {INSERT INTO t1 VALUES(1,‘hello’)}  
db1 eval {INSERT INTO t1 VALUES(2,‘goodbye’)}  
db1 eval {INSERT INTO t1 VALUES(3,‘howdy!’)}

Existe t il un moyen d’envoyer une commande avec plusieurs lignes d’un coup d’un seul?  
j’ai essayé :  
db1 eval {INSERT INTO t1 VALUES(1,‘hello’),(2,‘goodbye’)}  
ça ne fonctionne pas  
faire:  
db1 eval {INSERT INTO t1 VALUES(1,‘hello’);INSERT INTO t1 VALUES(2,‘goodbye’)}  
n’est pas plus rapide à exécuter

---

<div class="post-metadata">

**Author:** ![Mimoza](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mimoza/32/3858_2.png) [@Mimoza](https://www.debian-fr.org/u/Mimoza)\
**Post date:** [Février 21, 2016, 10:18 UTC](https://www.debian-fr.org/t/rapidite-sql-sous-tcl/68300/2 "2016-02-21T22:18:52Z")

</div>

En sql simple il ne me semble pas, après si tu nous précise ta bdd cible il y a peu être moyen de trouver une astuce. Genre pour Oracle «Bulk collect & Forall» ou en SQLServer «Bulk insert»

---

<div class="post-metadata">

**Author:** ![Hanselmault](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/h/b5a626/32.png) [@Hanselmault](https://www.debian-fr.org/u/Hanselmault)\
**Post date:** [Février 21, 2016, 10:19 UTC](https://www.debian-fr.org/t/rapidite-sql-sous-tcl/68300/3 "2016-02-21T22:19:02Z")

</div>

c’est sous TCL en utilisant sqlite3

---

<div class="post-metadata">

**Author:** ![Mimoza](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mimoza/32/3858_2.png) [@Mimoza](https://www.debian-fr.org/u/Mimoza)\
**Post date:** [Février 21, 2016, 10:19 UTC](https://www.debian-fr.org/t/rapidite-sql-sous-tcl/68300/4 "2016-02-21T22:19:02Z")

</div>

TCL ??? le langage ? [en.wikipedia.org/wiki/Tcl](https://en.wikipedia.org/wiki/Tcl)

Apparemment il faut utiliser les transaction, mais comme je ne connais pas TCL je ne pourrais pas t’aider plus :  
[stackoverflow.com/questions/1061 … in-android](http://stackoverflow.com/questions/10617524/insert-a-lot-of-data-into-sqlite-in-android)  
[stackoverflow.com/questions/1567 … in-c-sharp](http://stackoverflow.com/questions/15671600/add-lots-of-data-to-sqlite-database-in-c-sharp)  
[stackoverflow.com/questions/3640 … in-sqlite3](http://stackoverflow.com/questions/364017/faster-bulk-inserts-in-sqlite3)

---

<div class="post-metadata">

**Author:** ![Hanselmault](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/h/b5a626/32.png) [@Hanselmault](https://www.debian-fr.org/u/Hanselmault)\
**Post date:** [Février 28, 2016, 7:30 UTC](https://www.debian-fr.org/t/rapidite-sql-sous-tcl/68300/5 "2016-02-28T19:30:19Z")

</div>

Merci beaucoup pour ton lien. Après quelques recherches, il suffit de créer une string contenant toutes les commandes à lancer, avec juste BEGIN au debut et END à la fin:  
BEGIN;  
INSERT INTO table VALUES ();  
INSERT INTO table VALUES ();  
…  
END;  
Et ça marche du tonnerre (1s au lieu de 10 minutes)

---

<div class="post-metadata">

**Author:** ![Mimoza](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mimoza/32/3858_2.png) [@Mimoza](https://www.debian-fr.org/u/Mimoza)\
**Post date:** [Février 28, 2016, 7:30 UTC](https://www.debian-fr.org/t/rapidite-sql-sous-tcl/68300/6 "2016-02-28T19:30:24Z")

</div>

Ha oui en effet il vaut mieux envoyer toutes ses requête en une seule fois … le gros point de ralentissement est souvent dans la communication inter-language/appli/serveur/…  
Heureux que tu ai pu améliorer tes perfs par 600 ![:mrgreen:](https://www.debian-fr.org/uploads/default/original/1X/cc83e9b583138e48ff45f96609046b06d06c7f9d.gif "Mr. Green")
