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 :
Any idea ?
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
Partager