|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2009 Messages : 110 ![]() |
Bonjour à tous,
je coince sur un problème de performance au niveau des TRIGGER, en effet je voudrai savoir s'ils sont exécuté d'une manière synchrone ou asynchrone. C'est à dire : j'ai 3 tables : table1, table2 et table3 avec un TRIGGER sur ma table2 ON INSERT je fais 10.000 INSERT dans ma table 2 : INSERT INTO table2 (colonne) SELECT colone FROM table1; le TRIGGER va, pour CHAQUE ligne ajouté, ajouter 100 lignes dans ma table 3 ma question : est-ce que les 10.000 records (table2) vont être ajouté rapidement ou doivent-il attendre entre chaque insert, que chaque packet (de 10 lignes) soit terminé d'être ajouté ? (pour le nom des tables j'ai pas trouvé d'exemple lol) Merci
|
|
|
00
|
|
|
#2 | |
![]() ![]() |
Citation:
Ce qui m'étonne le plus, c'est le besoin qui te pousse à insérer d'un coup 10 000 lignes dans la table 2 qui vont générer automatiquement un total de 100 000 lignes dans la table 3.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
Avec un trigger for each row, pour chaque ligne insérée le trigger s'exécutera et insérera les 100 lignes dans table3...
Les triggers for each row plombent les perfs des opérations de masse. Le mieux est d'éviter les triggers et de faire les opérations nécessaires au sein d'une transaction si l'insertion des 100 000 lignes dans table 3 est faisable en une requête insert. |
|
|
00
|
|
|
#4 | |
|
Nouveau Membre du Club
![]() Inscription : juillet 2009 Messages : 110 ![]() |
Citation:
|
|
|
|
00
|
|
|
#5 |
![]() ![]() |
Et tu as vraiment besoin de générer ces 100 000 lignes ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2009 Messages : 110 ![]() |
Lorsque je pose une question je met toujours un exemple pour comprendre le fonctionnement, après c'est pas nécéssairement 100.000 lignes, ça peut être 1.000 lignes, mais tout ce que je voulais savoir c'est si c'est exécuter de manière synchrone ou asynchrone
|
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : mai 2005 Messages : 61 ![]() |
Au final, je n'ai pas très bien compris la réponse.
les Triggers sont bien synchrone non? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com