<div dir="ltr">hey,<div>if you have already topological data,</div><div>there is no point in using the normal function :</div><div>These functions performs a lot of operations to ensure that when you insert a polygon, you won't intersect with another one, etc etc.</div>
<div><br></div><div>To gain speed , you could either cut your data into several different topology schema (partitionning),</div><div>or put topology data the batch way (not one by one) , if possible ignoring all the framework used for normal data but useless for already topological data (possibly performing the necessary operation the set-way).</div>
<div><br></div><div>A simple thing you could try is not adding polygon but edges to populate your topological model,</div><div>then when you have imported all edges, </div><div>create a topogeometry per polygon and link it to your polygon data.</div>
<div>This would be done by breaking all your polygon into lines then edges (with some creative use of split), removing the duplicate, </div><div>then populating the <a href="http://trac.osgeo.org/postgis/wiki/PostgisTopology_Data_Model">postgis topology tables</a> manually.</div>
<div><br></div><div>The keys would be never use a one object per one object function , but instead sql querries on whole table.</div><div><br></div><div><br></div><div>Similarly it would be way faster and easier to directly import oracle topology (i mean by pure data base manipulation, like table import/export).<br>
>From what I see <a href="http://docs.oracle.com/cd/B19306_01/appdev.102/b14256/sdo_topo_concepts.htm">here </a>, oracle topology and postgis topology data model seems very similar,</div><div>the conversion oracle-> postgis looking like just a copy of proper tables and columns, the conversion postgis -> oracle looking a bit more difficult.</div>
<div><br></div><div>Cheers,</div><div><br>Rémi-C</div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014/1/7 Graeme B. Bell <span dir="ltr"><<a href="mailto:grb@skogoglandskap.no" target="_blank">grb@skogoglandskap.no</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi everyone.<br>
<br>
I tested postgis topology (2.1.0 r11822) by creating a topology from some national geometry datasets with respectively 1.6 million and 7.8 million polygons.<br>
<br>
One source geometry dataset was made by a transformation from an oracle topology into postgis geometry, the other is a polygonised raster (a natural topology).<br>
<br>
I selected out a fraction of the polygons randomly and created a topology in two ways, first using createtopogeo, and then manually using topogeo_addpolygon.<br>
<br>
The data has spatial indices but I think these possibly aren't being used because of the need for a geometry collection in createtopogeo.<br>
<br>
The results looked like this:<br>
<br>
1.7 million polygon dataset :<br>
<br>
1/512th of the data: 24 seconds<br>
1/256th of the data: 76 seconds<br>
1/128th of the data: 214 seconds<br>
1/64th of the data: 707 seconds<br>
1/32nd of the data: 2430 seconds<br>
<br>
<br>
7.8 million polygon dataset:<br>
<br>
1/512th of the data: 509 seconds<br>
1/256th of the data: 1905 seconds<br>
1/128th of the data:  6944 seconds<br>
<br>
<br>
Manually using topology's addpolygon produced CPU costs 50-100% higher than the createtopogeo function and growing at a similar rate. I did not complete testing with it.<br>
<br>
In both cases, the cost of creating the topology grows by 3-4x as the size of the source geometry set doubles. As the data becomes less sparse (e.g. 1/512th of a national dataset is pretty sparse) the trend seems to be towards 4x more CPU time for 2x extra data.<br>

<br>
We would like to use postgis topology but judging from the growth in costs, creating topologies would take e.g. years on the larger dataset and a month on the small dataset. These are not our largest geometry datasets.<br>

<br>
Does anyone have any ideas or suggestions about how we could proceed from here? Unfortunately I cannot share the datasets for testing purposes.<br>
<br>
Graeme.<br>
<br>
<br>
<br>
_______________________________________________<br>
postgis-devel mailing list<br>
<a href="mailto:postgis-devel@lists.osgeo.org">postgis-devel@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-devel" target="_blank">http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-devel</a><br>
</blockquote></div><br></div>