<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Geodatabase with Oracle Spatial performance in Data Management Questions</title>
    <link>https://community.esri.com/t5/data-management-questions/geodatabase-with-oracle-spatial-performance/m-p/15794#M801</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;There is no such thing as an "SDE" index.&amp;nbsp; All indexes in a database are &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;database indexes. The SDE.ST_GEOMETRY type has an index designed &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;by Esri, to be implemented as a library extension by Oracle, but it's&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;still a database index.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The MDSYS.SDO_GEOMETRY type is of Oracle's design and implementation.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Esri had no role in its creation.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;There isn't much you can do to customize the SDO_GEOMETRY spatial&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;index -- A different tablespace, and a geometry type specification,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;though if you have multiple independent disks, the former might be&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;helpful, and if your data is points, then specifying &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code jive_text_macro"&gt;PARAMETERS(�??sdo_indx_dims=2, layer_gtype=point�??) &lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;might produce a significant performance improvement.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Your post indicates 1-2m rows -- How many are being returned by each &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;query?&amp;nbsp; If it isn't a tiny subset, then that's really your problem -- no index&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;performs well when returning a significant fraction of the table.&amp;nbsp; The&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SDO_GEOMETRY storage format is also much larger than the compressed&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;binary used in SDE.ST_GEOMETRY, so if an identical ST_GEOMETRY polygon&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;layer is 1/3 the size of SDO_GEOMETRY, on a full table scan query, it&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;wouldn't be surprising if the ST_GEOMETRY was 3 times faster.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;One property that you &lt;/SPAN&gt;&lt;SPAN style="font-style:italic;"&gt;do&lt;/SPAN&gt;&lt;SPAN&gt; have control over is spatial fragmentation --&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If you organize the features so that neighboring features are close to&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;each other in the table (e.g. ORDER BY UTM_ZONE,LATITUDE on a&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;global GeoNames dataset), then a spatial query&amp;nbsp; over a small area (say,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;one 6x6 degree tile) will be optimized.&amp;nbsp; Of course, this requires that &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;you export and reimport the base table.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Another potential optimization is to break up massive polygons.&amp;nbsp; When I &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;split a 1:15m scale "world" polygons layer into 5x5 degree tiles for any &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;country larger than 5 degrees in either X or Y, my "identity" operation &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;performance moved from ~300ms/query to ~3ms/query.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;All in all, it's probably unwise to ignore index creation options, but the&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;best place to learn how to optimize Oracle's datatype is on an Oracle&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;forum.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;- V&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 27 Mar 2014 23:19:34 GMT</pubDate>
    <dc:creator>VinceAngelo</dc:creator>
    <dc:date>2014-03-27T23:19:34Z</dc:date>
    <item>
      <title>Geodatabase with Oracle Spatial performance</title>
      <link>https://community.esri.com/t5/data-management-questions/geodatabase-with-oracle-spatial-performance/m-p/15792#M799</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;We are storing data in Geodatabase on Oracle using Oracle Spatial option SDO_Geometry&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;and consuming that using ArcGIS server 10.2.1&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The performance is very slow (we are talking about between one to two million records)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When I loaded the data, I didn't pay attention to create indexes or configure indexes&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I just used FME to load data from file geodatabase.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What are the best practices when you use Geodatabase on Oracle with SDO geometry?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Which indexes are being used, the oracle ones, or sde ones?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I am very beginner in the performance issues, because I am mostly a developer.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;thanks for any help.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Any help, best practices, guidance, will be appreciated.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Mar 2014 21:20:08 GMT</pubDate>
      <guid>https://community.esri.com/t5/data-management-questions/geodatabase-with-oracle-spatial-performance/m-p/15792#M799</guid>
      <dc:creator>GhassanKarwchan</dc:creator>
      <dc:date>2014-03-27T21:20:08Z</dc:date>
    </item>
    <item>
      <title>Re: Geodatabase with Oracle Spatial performance</title>
      <link>https://community.esri.com/t5/data-management-questions/geodatabase-with-oracle-spatial-performance/m-p/15793#M800</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;The SDO Geometry versus ST_Geometry versus Compressed Binary versus whatever storage format for geometries discussion is something ESRI has been avoiding mostly in the past ten years or so...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;As to best practices, performance of software / hardware systems etc., the &lt;/SPAN&gt;&lt;A href="http://wiki.gis.com/wiki/index.php/System_Design_Strategies_Preface"&gt;System Design Strategies Preface&lt;/A&gt;&lt;SPAN&gt; gives guidance and lots of stuff to read, some others here on the forum may give more specific answers as regards the Oracle Spatial storage.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Mar 2014 21:39:02 GMT</pubDate>
      <guid>https://community.esri.com/t5/data-management-questions/geodatabase-with-oracle-spatial-performance/m-p/15793#M800</guid>
      <dc:creator>MarcoBoeringa</dc:creator>
      <dc:date>2014-03-27T21:39:02Z</dc:date>
    </item>
    <item>
      <title>Re: Geodatabase with Oracle Spatial performance</title>
      <link>https://community.esri.com/t5/data-management-questions/geodatabase-with-oracle-spatial-performance/m-p/15794#M801</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;There is no such thing as an "SDE" index.&amp;nbsp; All indexes in a database are &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;database indexes. The SDE.ST_GEOMETRY type has an index designed &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;by Esri, to be implemented as a library extension by Oracle, but it's&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;still a database index.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The MDSYS.SDO_GEOMETRY type is of Oracle's design and implementation.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Esri had no role in its creation.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;There isn't much you can do to customize the SDO_GEOMETRY spatial&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;index -- A different tablespace, and a geometry type specification,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;though if you have multiple independent disks, the former might be&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;helpful, and if your data is points, then specifying &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code jive_text_macro"&gt;PARAMETERS(�??sdo_indx_dims=2, layer_gtype=point�??) &lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;might produce a significant performance improvement.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Your post indicates 1-2m rows -- How many are being returned by each &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;query?&amp;nbsp; If it isn't a tiny subset, then that's really your problem -- no index&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;performs well when returning a significant fraction of the table.&amp;nbsp; The&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SDO_GEOMETRY storage format is also much larger than the compressed&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;binary used in SDE.ST_GEOMETRY, so if an identical ST_GEOMETRY polygon&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;layer is 1/3 the size of SDO_GEOMETRY, on a full table scan query, it&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;wouldn't be surprising if the ST_GEOMETRY was 3 times faster.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;One property that you &lt;/SPAN&gt;&lt;SPAN style="font-style:italic;"&gt;do&lt;/SPAN&gt;&lt;SPAN&gt; have control over is spatial fragmentation --&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If you organize the features so that neighboring features are close to&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;each other in the table (e.g. ORDER BY UTM_ZONE,LATITUDE on a&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;global GeoNames dataset), then a spatial query&amp;nbsp; over a small area (say,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;one 6x6 degree tile) will be optimized.&amp;nbsp; Of course, this requires that &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;you export and reimport the base table.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Another potential optimization is to break up massive polygons.&amp;nbsp; When I &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;split a 1:15m scale "world" polygons layer into 5x5 degree tiles for any &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;country larger than 5 degrees in either X or Y, my "identity" operation &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;performance moved from ~300ms/query to ~3ms/query.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;All in all, it's probably unwise to ignore index creation options, but the&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;best place to learn how to optimize Oracle's datatype is on an Oracle&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;forum.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;- V&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Mar 2014 23:19:34 GMT</pubDate>
      <guid>https://community.esri.com/t5/data-management-questions/geodatabase-with-oracle-spatial-performance/m-p/15794#M801</guid>
      <dc:creator>VinceAngelo</dc:creator>
      <dc:date>2014-03-27T23:19:34Z</dc:date>
    </item>
    <item>
      <title>Re: Geodatabase with Oracle Spatial performance</title>
      <link>https://community.esri.com/t5/data-management-questions/geodatabase-with-oracle-spatial-performance/m-p/15795#M802</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks Vangelo&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;you added very valuable information.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;This is exactly what I was looking for&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 31 Mar 2014 15:15:39 GMT</pubDate>
      <guid>https://community.esri.com/t5/data-management-questions/geodatabase-with-oracle-spatial-performance/m-p/15795#M802</guid>
      <dc:creator>GhassanKarwchan</dc:creator>
      <dc:date>2014-03-31T15:15:39Z</dc:date>
    </item>
  </channel>
</rss>

