Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#1 14/06/2012 12:15:13
- gom
- Membre
Auto verrouillage de la table où je fais des INSERT ?!
Bonjour,
Je lance des INSERT depuis un ETL et j'ai des ExclusiveLock, des AccessShareLock et des RowExclusiveLock sur la table.
En résumé ... je m'auto-verrouille !
select t.relname,l.locktype,page,virtualtransaction,pid,mode,granted
from pg_locks l, pg_stat_all_tables t
where l.relation=t.relid
order by relation asc;
"ma_table";"relation";;"14/63596";7415;"RowExclusiveLock";t
Une idée ?
Gôm
Hors ligne
#2 14/06/2012 12:38:12
- kenrio
- Membre
Re : Auto verrouillage de la table où je fais des INSERT ?!
un insert égal une transaction ? ou masse insert sous une seule transaction ?
Hors ligne
#3 14/06/2012 14:02:57
- gom
- Membre
Re : Auto verrouillage de la table où je fais des INSERT ?!
1000 INSERT par transaction. J'ai essayé avec 1 INSERT pour 1 transaction, mais rien n'y fait !
Hors ligne
#4 14/06/2012 15:56:39
- Marc Cousin
- Membre
Re : Auto verrouillage de la table où je fais des INSERT ?!
Non, on ne s'autoverrouille pas pour si peu: rowexclusivelock n'est pas un verrou d'enregistrement, mais un verrou partagé de table. http://www.postgresql.org/docs/9.1/stat … cking.html
Tout ce que fait ce verrou, c'est dire «attention, je suis en train de faire un update sur la table, merci de ne pas faire d'alter, drop… dessus»
Marc.
Hors ligne