In operazioni di caricamento così onerose può essere utile disabilitare gli indici spaziali prima del caricamento e riabilitarli subito dopo. In Oracle, ma credo anche in PostGIS e altri RDBMS, si nota un vantaggio evidente.
Stefano --------------------------------------------------- http://www.linkedin.com/in/stefanoiacovella http://twitter.com/#!/Iacovellas Il 05 dicembre 2011 12:22, <a.furi...@lqt.it> ha scritto: > magari non interessa a tutti, ma sicuramente e' > un dettaglio tecnico che potra' interessare diversi > power users che si trovano a manipolare grosse > quantita' di dati con ogr2ogr > > ho scoperto (abbastanza casualmente) che ogr2ogr > e' incredibilmente lento quando il target di > destinazione e' uno Spatial DBMS Transactional: > quanto segue e' misurato su SpatiaLite, ma immagino > che anche PostGIS (Oracle, SQL Server ...) abbiano > esattamente il medesimo problema. > > la causa di questa mortale lentezza in scrittura > va identificata nel fatto che ogr2ogr invoca una > operazione di COMMIT TRANSACTION troppo frequentemente, > mandando continuamente in stallo l'I/O del DBMS > > tuttavia esiste un piccolo, oscuro argomento che > permette di configurare flessibilmente questo aspetto; > peccato che la documentazione di ogr2ogr non lo metta > nella debita edivenza avvertendo della criticita'. > > -tg 65536 [capisce anche l'alias -gt, =Group Transaction] > > spiegazione ultra-veloce: by default ogr2ogr assume > -tg 200; cioe' ogni 200 INSERT (oppure quando cambia > layer) effettua una COMMIT > specificando esplicitamente -tg 65536 invece si chiede > ad ogr2ogr di effettuare una COMMIT ogni 65536 INSERTs > > test case > ---------- > input: un file GML topologico da 2,8 GB (grosso bestione) > output: SpatiaLite 3.0.0 con Spatial Index abilitati > (100+ layers, molti milioni di features) > > test #1 (default): 4 ore e mezza > test #2 (-tg 65536): 1 ora :-) > > ... quella che si chiama una "differenza apprezzabile" :-P > > ciao Sandro > > > > _______________________________________________ > Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione > Gfoss@lists.gfoss.it > http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss > Questa e' una lista di discussione pubblica aperta a tutti. > Non inviate messaggi commerciali. > I messaggi di questa lista non rispecchiano necessariamente > le posizioni dell'Associazione GFOSS.it. > 540 iscritti al 4.11.2011 _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione Gfoss@lists.gfoss.it http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. Non inviate messaggi commerciali. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. 540 iscritti al 4.11.2011