<?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: Using a spatial query within a view - very slow in Data Management Questions</title>
    <link>https://community.esri.com/t5/data-management-questions/using-a-spatial-query-within-a-view-very-slow/m-p/720959#M40875</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;One more on this topic...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This gave the best performance in SQL with the vertex-dense rectangles:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;&amp;nbsp; 1&amp;nbsp; CREATE OR REPLACE VIEW forum_view10 AS &amp;nbsp; 2&amp;nbsp; SELECT l.objectid loc_id,r.objectid rec_id,l.point &amp;nbsp; 3&amp;nbsp; FROM rectangles2 r &amp;nbsp; 4&amp;nbsp; LEFT OUTER JOIN locations l &amp;nbsp; 5*&amp;nbsp;&amp;nbsp;&amp;nbsp; ON SDE.st_within(l.point,r.poly) = 1 SQL&amp;gt; /&amp;nbsp; View created.&amp;nbsp; % sdelayer -o register -l forum_view10,point -e np -R 3 -C loc_id,USER -t ST_GEOMETRY&amp;nbsp; ArcSDE 10.1&amp;nbsp; for Oracle11g Build 768 Thu Aug 23 15:57:13&amp;nbsp; 2012 Layer&amp;nbsp;&amp;nbsp;&amp;nbsp; Administration Utility ----------------------------------------------------- Successfully Created Layer.&amp;nbsp; % sdequery -N -t forum_view10&amp;nbsp; ArcSDE 10.1 Generic Query Tool&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Tue Feb 26 10:20:40 2013 ------------------------------------------------------------------------ 8000 rows found in 988.24 ms &lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Outside the SQL realm, I have a high-performance query tool that uses a RAM cache for&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;identity operations, and it took just 107 milliseconds (beyond cache construction) to query&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; the large polygons with 8000 points: &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;% cat ident.ctl COORDREF_XY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -210,-120,1000000 COORDSYS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GCS_WGS_1984 ENVELOPE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0,0,20,20 SKIP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 REGISTER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; loc_id(USER) META&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id1:VERBOSE="TRUE" META&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id1:SUMMARIZE="true" META&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id1:TABLE="rectangles2" META&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id1:COLUMN="poly" META&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id1:ALIAS="point" META&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id1:USE_CACHE="true" COLUMNS loc_id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Int32&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp; 10&amp;nbsp;&amp;nbsp; N rec_id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Identity(id1,objectid)&amp;nbsp; -&amp;nbsp; 10&amp;nbsp;&amp;nbsp; Y point&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WKTShape&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp; Y END&amp;nbsp; % sdequery -t locations -C objectid,point -d - -q | \ &amp;nbsp; ascinfo -o scan -f - -C ident.ctl&amp;nbsp; ArcSDE 10.1 Dynamic ASCII Table Utility&amp;nbsp; Tue Feb 26 10:39:07 2013 ------------------------------------------------------------------------ ! id1: Cache size limited to 128.00Mb ! id1: Connecting to instance 'localhost:esri_sde' as 'staff'... ! id1: Connection created at Tue Feb 26 10:39:07 2013 ! id1: 20 features cached using 124.8Kb in 85.52 ms 8000 rows found in 271.95 ms&amp;nbsp; ! id1: 8000 features found in 194.05 ms (24 us/query) ! id1: Disconnected at Tue Feb 26 10:39:07 2013 8000 rows read in 237.88 ms &lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;For 80k random points, the time per query would be less (14us mean), since&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;the polygon read time is distributed across more rows.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;- V&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 26 Feb 2013 13:57:29 GMT</pubDate>
    <dc:creator>VinceAngelo</dc:creator>
    <dc:date>2013-02-26T13:57:29Z</dc:date>
    <item>
      <title>Using a spatial query within a view - very slow</title>
      <link>https://community.esri.com/t5/data-management-questions/using-a-spatial-query-within-a-view-very-slow/m-p/720954#M40870</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Using the following:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Oracle 11g, SDE 10.0&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I've been able to create both a view and an sde view that contains a spatial query (sde.st_intersects).&amp;nbsp; Querying this view is very slow and it only contains 8000 records.&amp;nbsp; The points table contains 8000 records and the regions table contains 20 records.&amp;nbsp; It takes about 4 minutes to generate the view (either one) and about the same amount of time to get results from any query.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Any suggestions?&amp;nbsp; Is there a better way to do this, perhaps?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here's the code from the view&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;CREATE OR REPLACE FORCE VIEW schema.VW_REGIONS_TEST&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; REGION,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; AREA,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; POINT_ID&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;AS&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; regions.REGION AS region,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; regions.AREANAME AS area,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; points.globalid AS point_id&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM schema.ADMIN_BNDY regions, schema.POINTS points&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE sde.st_intersects (regions.shape, points.shape) = 1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here's the code from the sdetable create:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;sdetable -o create_view &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-T VW_SDE_POINTS_REGIONS &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-t "schema.POINTS, schema.ADMIN_BNDY??? &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-c "POINTS.OBJECTID, POINTS.GLOBALID, ADMIN_BNDY.REGION,ADMIN_BNDY.AREANAME" &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-w "sde.st_intersects(ADMIN_BNDY.shape,POINTS.shape)=1" &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-i sde:oracle11g:LRSSDE01:NPC_FOR &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-u ************&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-p ******&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you very much,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Sonia&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 Feb 2013 15:45:23 GMT</pubDate>
      <guid>https://community.esri.com/t5/data-management-questions/using-a-spatial-query-within-a-view-very-slow/m-p/720954#M40870</guid>
      <dc:creator>soniadickerson1</dc:creator>
      <dc:date>2013-02-25T15:45:23Z</dc:date>
    </item>
    <item>
      <title>Re: Using a spatial query within a view - very slow</title>
      <link>https://community.esri.com/t5/data-management-questions/using-a-spatial-query-within-a-view-very-slow/m-p/720955#M40871</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;What is your goal here?&amp;nbsp; From all appearances, you've trying to return potentially &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;duplicate polygons for each row with a point id.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You might have some polynomial expansion as well.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Have you tried using the ST_WITHIN operator.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What is the state of the spatial index on the ADMIN_BNDY table?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;- V&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 Feb 2013 16:17:35 GMT</pubDate>
      <guid>https://community.esri.com/t5/data-management-questions/using-a-spatial-query-within-a-view-very-slow/m-p/720955#M40871</guid>
      <dc:creator>VinceAngelo</dc:creator>
      <dc:date>2013-02-25T16:17:35Z</dc:date>
    </item>
    <item>
      <title>Re: Using a spatial query within a view - very slow</title>
      <link>https://community.esri.com/t5/data-management-questions/using-a-spatial-query-within-a-view-very-slow/m-p/720956#M40872</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;So, just for grins, I populated two random tables, with 20 rectangles partitioning&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a georegion, and 8000 random points, and three views:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;% asc2sde -o create -l rectangles,poly -g 5 -C rect.ctl

ASCII to ArcSDE 10.1 Loader Utility&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mon Feb 25 14:33:45 2013
------------------------------------------------------------------------
Results:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Records read: 20
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Rows created: 20
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Insert time: 39.64 ms (504.49 TPS)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Elapsed time: 993.10 ms

% asc2sde -o create -l locations,point -g 3 -C pnts.ctl

ASCII to ArcSDE 10.1 Loader Utility&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mon Feb 25 14:34:11 2013
------------------------------------------------------------------------
Results:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Records read: 8000
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Rows created: 8000
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Insert time: 1.27 secs (6290.73 TPS)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Elapsed time: 3.04 secs

&amp;nbsp; 1&amp;nbsp; create view forum_view as
&amp;nbsp; 2&amp;nbsp; select l.objectid loc_id,r.objectid rec_id,r.poly
&amp;nbsp; 3&amp;nbsp; from locations l,rectangles r
&amp;nbsp; 4* where SDE.st_intersects(r.poly,l.point) = 1
SQL&amp;gt; /

View created.

% sdelayer -o register -l forum_view,poly -e na+ -R 3 -C loc_id,USER -t ST_GEOMETRY

ArcSDE 10.1&amp;nbsp; for Oracle11g Build 768 Thu Aug 23 15:57:13&amp;nbsp; 2012
Layer&amp;nbsp;&amp;nbsp;&amp;nbsp; Administration Utility
-----------------------------------------------------
Successfully Created Layer.

% sdequery -N -t locations&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 

ArcSDE 10.1 Generic Query Tool&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mon Feb 25 14:35:29 2013
------------------------------------------------------------------------
8000 rows found in 220.49 ms

% sdequery -N -t rectangles&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 

ArcSDE 10.1 Generic Query Tool&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mon Feb 25 14:35:36 2013
------------------------------------------------------------------------
20 rows found in 10.89 ms

% sdequery -N -t forum_view

ArcSDE 10.1 Generic Query Tool&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mon Feb 25 14:35:48 2013
------------------------------------------------------------------------
8000 rows found in 5.47 secs
 
&amp;nbsp; 1&amp;nbsp; create view forum_view2 as
&amp;nbsp; 2&amp;nbsp; select l.objectid loc_id,r.objectid rec_id,r.poly
&amp;nbsp; 3&amp;nbsp; from locations l,rectangles r
&amp;nbsp; 4* where SDE.st_contains(r.poly,l.point) = 1
SQL&amp;gt; /

View created.

% sdelayer -o register -l forum_view2,poly -e na+ -R 3 -C loc_id,USER -t ST_GEOMETRY

ArcSDE 10.1&amp;nbsp; for Oracle11g Build 768 Thu Aug 23 15:57:13&amp;nbsp; 2012
Layer&amp;nbsp;&amp;nbsp;&amp;nbsp; Administration Utility
-----------------------------------------------------
Successfully Created Layer.

% sdequery -N -t forum_view2

ArcSDE 10.1 Generic Query Tool&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mon Feb 25 15:05:36 2013
------------------------------------------------------------------------
8000 rows found in 5.56 secs

&amp;nbsp; 1&amp;nbsp; create view forum_view3 as
&amp;nbsp; 2&amp;nbsp; select l.objectid loc_id,r.objectid rec_id,r.poly
&amp;nbsp; 3&amp;nbsp; from locations l,rectangles r
&amp;nbsp; 4* where SDE.st_within(l.point,r.poly) = 1
SQL&amp;gt; /

View created.

% sdelayer -o register -l forum_view3,poly -e na+ -R 3 -C loc_id,USER -t ST_GEOMETRY

ArcSDE 10.1&amp;nbsp; for Oracle11g Build 768 Thu Aug 23 15:57:13&amp;nbsp; 2012
Layer&amp;nbsp;&amp;nbsp;&amp;nbsp; Administration Utility
-----------------------------------------------------
Successfully Created Layer.

% sdequery -N -t forum_view3

ArcSDE 10.1 Generic Query Tool&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mon Feb 25 15:15:32 2013
------------------------------------------------------------------------
8000 rows found in 1.10 secs

&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;As you can see, they were all pretty quick, but the ST_WITHIN was the fastest.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Your performance will depend on:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1) the simplicity of the polygons, and&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2) the efficiency of the spatial index&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;- V&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 06:50:36 GMT</pubDate>
      <guid>https://community.esri.com/t5/data-management-questions/using-a-spatial-query-within-a-view-very-slow/m-p/720956#M40872</guid>
      <dc:creator>VinceAngelo</dc:creator>
      <dc:date>2021-12-12T06:50:36Z</dc:date>
    </item>
    <item>
      <title>Re: Using a spatial query within a view - very slow</title>
      <link>https://community.esri.com/t5/data-management-questions/using-a-spatial-query-within-a-view-very-slow/m-p/720957#M40873</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thank you so much for taking a look at this. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You asked about the purpose- its for a crystal report.&amp;nbsp; For the point report, we need to know which region polygon its in.&amp;nbsp; I've tried several different methods but thought it would be best to keep this on the database side and build a view of the point data and its respective region using a spatial query.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Again, perhaps there is a better way to do that.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I appreciate you giving this a try.&amp;nbsp; I'll apply the st_within function and report back.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 26 Feb 2013 11:43:18 GMT</pubDate>
      <guid>https://community.esri.com/t5/data-management-questions/using-a-spatial-query-within-a-view-very-slow/m-p/720957#M40873</guid>
      <dc:creator>soniadickerson1</dc:creator>
      <dc:date>2013-02-26T11:43:18Z</dc:date>
    </item>
    <item>
      <title>Re: Using a spatial query within a view - very slow</title>
      <link>https://community.esri.com/t5/data-management-questions/using-a-spatial-query-within-a-view-very-slow/m-p/720958#M40874</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;When I increased the vertex density of my rectangles (from 5 to 361), my query time&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;increased by a factor of four.&amp;nbsp; I also tried using a LEFT OUTER JOIN in the SQL, but&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;that was twice as long.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The problem here is the 8000 spatial queries -- Even if one query is relatively efficient&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(one millisecond), 8000 of them still take 8 seconds.&amp;nbsp; Since 30 milliseconds is not&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;uncommon for a complex spatial query, 4 minutes is not unreasonable for this join.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You might try driving the query the other way -- 20 ST_CONTAINS will be faster than &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;8000 ST_WITHINs, but boundary conditions could generate more (or less) than the&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;full point complement on output. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; In many ways, you're better off materializing this view (CREATE TABLE join_result AS ...) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;and recreating it if the geometries change.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;- V&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 26 Feb 2013 12:07:34 GMT</pubDate>
      <guid>https://community.esri.com/t5/data-management-questions/using-a-spatial-query-within-a-view-very-slow/m-p/720958#M40874</guid>
      <dc:creator>VinceAngelo</dc:creator>
      <dc:date>2013-02-26T12:07:34Z</dc:date>
    </item>
    <item>
      <title>Re: Using a spatial query within a view - very slow</title>
      <link>https://community.esri.com/t5/data-management-questions/using-a-spatial-query-within-a-view-very-slow/m-p/720959#M40875</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;One more on this topic...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This gave the best performance in SQL with the vertex-dense rectangles:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;&amp;nbsp; 1&amp;nbsp; CREATE OR REPLACE VIEW forum_view10 AS &amp;nbsp; 2&amp;nbsp; SELECT l.objectid loc_id,r.objectid rec_id,l.point &amp;nbsp; 3&amp;nbsp; FROM rectangles2 r &amp;nbsp; 4&amp;nbsp; LEFT OUTER JOIN locations l &amp;nbsp; 5*&amp;nbsp;&amp;nbsp;&amp;nbsp; ON SDE.st_within(l.point,r.poly) = 1 SQL&amp;gt; /&amp;nbsp; View created.&amp;nbsp; % sdelayer -o register -l forum_view10,point -e np -R 3 -C loc_id,USER -t ST_GEOMETRY&amp;nbsp; ArcSDE 10.1&amp;nbsp; for Oracle11g Build 768 Thu Aug 23 15:57:13&amp;nbsp; 2012 Layer&amp;nbsp;&amp;nbsp;&amp;nbsp; Administration Utility ----------------------------------------------------- Successfully Created Layer.&amp;nbsp; % sdequery -N -t forum_view10&amp;nbsp; ArcSDE 10.1 Generic Query Tool&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Tue Feb 26 10:20:40 2013 ------------------------------------------------------------------------ 8000 rows found in 988.24 ms &lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Outside the SQL realm, I have a high-performance query tool that uses a RAM cache for&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;identity operations, and it took just 107 milliseconds (beyond cache construction) to query&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; the large polygons with 8000 points: &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;% cat ident.ctl COORDREF_XY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -210,-120,1000000 COORDSYS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GCS_WGS_1984 ENVELOPE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0,0,20,20 SKIP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 REGISTER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; loc_id(USER) META&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id1:VERBOSE="TRUE" META&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id1:SUMMARIZE="true" META&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id1:TABLE="rectangles2" META&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id1:COLUMN="poly" META&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id1:ALIAS="point" META&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id1:USE_CACHE="true" COLUMNS loc_id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Int32&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp; 10&amp;nbsp;&amp;nbsp; N rec_id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Identity(id1,objectid)&amp;nbsp; -&amp;nbsp; 10&amp;nbsp;&amp;nbsp; Y point&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WKTShape&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp; Y END&amp;nbsp; % sdequery -t locations -C objectid,point -d - -q | \ &amp;nbsp; ascinfo -o scan -f - -C ident.ctl&amp;nbsp; ArcSDE 10.1 Dynamic ASCII Table Utility&amp;nbsp; Tue Feb 26 10:39:07 2013 ------------------------------------------------------------------------ ! id1: Cache size limited to 128.00Mb ! id1: Connecting to instance 'localhost:esri_sde' as 'staff'... ! id1: Connection created at Tue Feb 26 10:39:07 2013 ! id1: 20 features cached using 124.8Kb in 85.52 ms 8000 rows found in 271.95 ms&amp;nbsp; ! id1: 8000 features found in 194.05 ms (24 us/query) ! id1: Disconnected at Tue Feb 26 10:39:07 2013 8000 rows read in 237.88 ms &lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;For 80k random points, the time per query would be less (14us mean), since&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;the polygon read time is distributed across more rows.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;- V&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 26 Feb 2013 13:57:29 GMT</pubDate>
      <guid>https://community.esri.com/t5/data-management-questions/using-a-spatial-query-within-a-view-very-slow/m-p/720959#M40875</guid>
      <dc:creator>VinceAngelo</dc:creator>
      <dc:date>2013-02-26T13:57:29Z</dc:date>
    </item>
    <item>
      <title>Re: Using a spatial query within a view - very slow</title>
      <link>https://community.esri.com/t5/data-management-questions/using-a-spatial-query-within-a-view-very-slow/m-p/720960#M40876</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Can your force a hint on the spatial index within the query? I forget the exact commands, but there are some tools out there to investigate SQL Spatial queries, which, in SQL 2008, have HORRIBLE performance because of lack of honoring spatial indexes in some scenarios. Are you able to see the query execution plan in management studio?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Mar 2013 22:03:02 GMT</pubDate>
      <guid>https://community.esri.com/t5/data-management-questions/using-a-spatial-query-within-a-view-very-slow/m-p/720960#M40876</guid>
      <dc:creator>ThomasColson</dc:creator>
      <dc:date>2013-03-01T22:03:02Z</dc:date>
    </item>
    <item>
      <title>Re: Using a spatial query within a view - very slow</title>
      <link>https://community.esri.com/t5/data-management-questions/using-a-spatial-query-within-a-view-very-slow/m-p/720961#M40877</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Using the left outer join with the within function, I built a view and found that in our system, it had the same performance as an indexed table so we are just going to use a view.&amp;nbsp; I had planned to us a table that had update triggers but when I found that the performance was the same, there was no reason to continue down that path.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If we need to speed things up,&amp;nbsp; I'll look into hints to see if that might make a diffference.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Your replies have been very beneficial.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you for all of your help.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Sonia&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Mar 2013 11:03:54 GMT</pubDate>
      <guid>https://community.esri.com/t5/data-management-questions/using-a-spatial-query-within-a-view-very-slow/m-p/720961#M40877</guid>
      <dc:creator>soniadickerson1</dc:creator>
      <dc:date>2013-03-04T11:03:54Z</dc:date>
    </item>
  </channel>
</rss>

