Bonjour,

j'ai créé un script qui insère dans une table environ 1,5 Million d'enregistrements. Pour accélérer le traitement, je ne veux pas faire de commit à chaque enregistrement, sinon j'en ai pour 4 jours d'importation et le traitement doit être fait tous les jours . Mon problème est que du coup si je fais ca je fais exploser le journal des transactions, ce qui parait logique. Je cherche donc un moyen de faire comme j'arrive à faire sous java c'est à dire flusher le buffer de transaction toutes les 100 requetes par exemple, tout en conservant une transaction globale que je peux rollbacker en cas de problème.
Moi y'en a pas être sur d'être bien clair... Du coup un petit algo pour me faire comprendre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
prepare_requete(INSERT)
 
demarre_transaction
 
pour ligne dans lignes_fichier
    param_requete
    execute_requete
    si ko alors 
         rollback
         fin processus
    sinon
        incremente_compteur
        si (compteur % 1000) = 0 alors
             flush_buffer
        fin si
    fin si
fin pour
 
commit_transaction
Any idea ?