Select to view content in your preferred language

Geoprocessing/Editing AGO Feature Layer in ArcGIS Pro is Painfully Slow

369
3
Jump to solution
08-05-2024 09:12 AM
BrianShepard
Occasional Contributor

I'm working through the setup of Esri's Cemetery Management Solution. I've set the data source for the layers in the ArcGIS Pro Project template to the created feature layers and tables in AGO. Running geoprocessing tools (Append, Calculate Field, Delete Identical, etc.) in ArcGIS Pro on the AGO layers is painfully slow. I'm currently populating values for ~18,000 features using Field Calculator and I'm 14% complete after 25 minutes. I had to let Delete Identical run over the weekend on 19,000-20,000 features.

How can I determine what's causing such abysmal performance and improve it? 

0 Kudos
1 Solution

Accepted Solutions
BrianShepard
Occasional Contributor

@David_McRitchie, thanks for the reply. 25 minutes wasn't even for the full dataset. Each process took 2+ hours to complete. Fortunately, @DanielWickens suggested that I export the AGO content, perform the updates locally, and then use the Update Data tool in AGO to update the layers/tables. That took many more steps, but was tremendously more time efficient. An added benefit was that after exporting the feature layer the Gravesites feature class and related Burials/Owners tables were in the same fgdb, so I could do a 1:many join. That made it even easier to populate the Parent Global ID.

Since this was the only viable method I came across to make these updates, I'll post the steps I followed below:

Populate and update tables/feature classes in ArcGIS Pro

  • Export Cemetery feature layer as fgdb
  • Extract exported fgdb in ArcPro Project Folder
  • Append data to Burials and Owners (and/or other layers)
  • Join Gravesites to Burials and Owners (can do 1:many w/ both in same fgdb)
  • Calculate Parent Global ID for Burials and Owners
  • Calculate Status for Gravesites
  • Zip fgdb

 

Update layers/tables in AGO

  • Open details for Gravesites polygon layer
  • Click Update Data
  • Perform Add and Update (or Add if Gravesites hasn’t been previously updated in AGO)
  • Select location of zipped fgdb and select Gravesites as updated data
  • Use Global ID as identifier (if Add and Update)
  • Update Attributes and Geometries
  • Verify updated record count matches number of features

 

  • Open details for Burials table
  • Click Update Data
  • Perform Add and Update (or Add if Burials hasn’t been previously updated in AGO)
  • Select location of zipped fgdb and select Burials as updated data
  • Use Global ID as identifier (if Add and Update)
  • Update Attributres only
  • Verify updated record count matches number of rows

 

  • Open details for Owners table
  • Click Update Data
  • Perform Add and Update (or Add if Owners hasn’t been previously updated in AGO)
  • Select location of zipped fgdb and select Owners as updated data
  • Use Global ID as identifier (if Add and Update)
  • Update Attributes only
  • Verify updated record count matches number of rows

View solution in original post

0 Kudos
3 Replies
BrianShepard
Occasional Contributor

Transitioning from Arcade to SQL for Field Calculator made a huge improvement. I've been trying to force myself to use Arcade to improve my proficiency, and Esri's tasks for calculating things like "Gravesite ID" have a pre-populated Arcade statement. However, SQL statements take seconds instead of hours with Arcade. 

This document was helpful: Optimize web feature layers—ArcGIS Pro | Documentation

I'll post anything else I find here. I assume this will be helpful since, in some cases, Esri's Solution Tasks seem to be set up in an inefficient manner.

0 Kudos
David_McRitchie
Esri Contributor

Hey Brian,

25 minutes certainly does sound slow and honestly I would be unsure why Arcade would be performing slower than SQL statements. I think this would be worth raising a Technical Support Case.

I wonder if this could be something specific to running this process on a network. It might be worth taking an exported copy of the feature layer and storing this locally, then testing the process again.

 

Given that we are using Appends and Deletes it would also be worth checking that the Spatial and Attribute field indexes as this can improve performance.

 

Hope that helps,

David

Esri UK -Technical Support Analyst
BrianShepard
Occasional Contributor

@David_McRitchie, thanks for the reply. 25 minutes wasn't even for the full dataset. Each process took 2+ hours to complete. Fortunately, @DanielWickens suggested that I export the AGO content, perform the updates locally, and then use the Update Data tool in AGO to update the layers/tables. That took many more steps, but was tremendously more time efficient. An added benefit was that after exporting the feature layer the Gravesites feature class and related Burials/Owners tables were in the same fgdb, so I could do a 1:many join. That made it even easier to populate the Parent Global ID.

Since this was the only viable method I came across to make these updates, I'll post the steps I followed below:

Populate and update tables/feature classes in ArcGIS Pro

  • Export Cemetery feature layer as fgdb
  • Extract exported fgdb in ArcPro Project Folder
  • Append data to Burials and Owners (and/or other layers)
  • Join Gravesites to Burials and Owners (can do 1:many w/ both in same fgdb)
  • Calculate Parent Global ID for Burials and Owners
  • Calculate Status for Gravesites
  • Zip fgdb

 

Update layers/tables in AGO

  • Open details for Gravesites polygon layer
  • Click Update Data
  • Perform Add and Update (or Add if Gravesites hasn’t been previously updated in AGO)
  • Select location of zipped fgdb and select Gravesites as updated data
  • Use Global ID as identifier (if Add and Update)
  • Update Attributes and Geometries
  • Verify updated record count matches number of features

 

  • Open details for Burials table
  • Click Update Data
  • Perform Add and Update (or Add if Burials hasn’t been previously updated in AGO)
  • Select location of zipped fgdb and select Burials as updated data
  • Use Global ID as identifier (if Add and Update)
  • Update Attributres only
  • Verify updated record count matches number of rows

 

  • Open details for Owners table
  • Click Update Data
  • Perform Add and Update (or Add if Owners hasn’t been previously updated in AGO)
  • Select location of zipped fgdb and select Owners as updated data
  • Use Global ID as identifier (if Add and Update)
  • Update Attributes only
  • Verify updated record count matches number of rows
0 Kudos