Skip to main content
Question

Creating a Spatial Index in SQL Server Database

  • January 15, 2020
  • 1 reply
  • 139 views

Forum|alt.badge.img

Hi all,

I am currently loading data into a SQL Server database from geodatabases. When I load in the data in via arccatalog, i successfully see the data.

 

Now when I do this via FME, i seem to get a different icon and then the spatial index has to be recalculated. The data is visible but this icon appears at every point. Does this mean the spatial index has not been created? Is there a easy automated way, where the spatial index gets created when loading into a enterprise geodatabase SQL server?

1 reply

bwn
Evangelist
Forum|alt.badge.img+26
  • Evangelist
  • January 16, 2020

This depends on whether you are creating the SQL Server table with FME, or inserting/updating an existing SQL Server table with FME.

If you are creating the table, then you need to separately create the Spatial Index (as you would for any index). Either this can be specified in the writer as a Transact-SQL Server statement "CREATE SPATIAL INDEX...", or you can get FME to "guess" the statement and attempt to execute it. See documentation here:

https://docs.safe.com/fme/html/FME_Desktop_Documentation/FME_ReadersWriters/mssql_spatial/format_parameters_w.htm

This is also what ArcCatlog does, by generating and executing a CREATE SPATIAL INDEX... statement when copying a Feature Class across, it is just that it does this "behind-the-scenes" since it assumes the user will always want a spatial index on the resulting table, regardless of whether the user wanted it or not! But it makes sense since ArcMap's performance is highly dependent on this spatial index being present (It can always be dropped easily enough though).


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings