4

We have a number of SQL Spatial views each made up of approximately 10 tables (so relatively complex views) and each including a table with a SQL Geometry column. A view could return up to 300-400 thousand records. No SDE involved. We are using a Query Layer (QL) for each spatial view (Select * from the view) to display in ArcMap. Each spatial table has a primary key, spatial grids and uses an SRID of 0. Just to load a QL might take 10-15 seconds. To display with a 100k - 250k data view (maybe 100s of features) takes 10-20 seconds. We previous had these as SDE views (same underlying SQL views w/o the SQL spatial column) in Arc 10 and they loaded and displayed in 1-3 seconds.

Anyone have ideas about why these are SO MUCH SLOWER without using SDE?

asked Mar 2, 2012 at 23:33

3 Answers 3

2

I don't know if this could help but when using Query Layers on ORACLE Views with an SDO column, we had to create Spatial Index on all tables containing Spatial information, and then create a spatial index on the view.

answered Mar 2, 2012 at 23:47
3
  • 1
    Thanks for the quick response and a good idea. We have indices on the spatial tables but not on the views. In fact we were talking around this point this afternoon. I'll put an index on one of the larger views first thing Monday and let you know. Commented Mar 3, 2012 at 0:22
  • @MichaelCiscell were you able to create the index on your View? Commented Mar 13, 2012 at 17:41
  • No. Sorry fro being away from this so long. We're working with ESRI now on the issue. Our views had issues an Indexed View didn't allow. Commented May 11, 2012 at 22:40
2

First, it's slower than SDE because ArcMap has no information about the extent and other information that SDE stores and uses in the back-end of a SQL Server database to store such information and use it to speed rendering (did you get the 'calculating extent' dialogue when you tried adding it to the ArcMap pane?)

Second, have you tried accessing the view from a direct connection to your SQL Server database, and consuming it through that connection, rather than building another layer of SQL on top of your existing layer of SQL (ie. the view)? Sounds a bit redundant...

We build (ie. create) spatial views into the database, including ID's, and consume them from the Database Connection tree in Catalog, rather than using query layers.

All in all, using a query layer on top of a query and lack of optimization information used by SDE sounds like the culprit...but we have experienced slow performance due to the latter issue in ArcMap as well.

answered May 14, 2014 at 21:09
1

My suggestion would be cut down on fields you are selecting instead of

Select * from the view

which gives you all the rows and all the columns of the tables in question cut down on what you are selecting:

Select Fruit,Tree,Branch From Orchard Where Tree = 'Apple'

Alex Markov
4,03723 silver badges34 bronze badges
answered May 18, 2012 at 17:48

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.