Hi everyone
I'm working on a CoreHost application that will handle very large sets of data. It will create, update, delete features in Utility Network. Including Associations.
The Utiltity Network is deployed in Enterprise and we are accessing it through the features services.
The problem I'm looking at right now is performance when creating Associations. It takes a long time compared with all other updates being done.
Is there a way to speed up creation of Associations? Can I tune the database with some indices perhaps?
Everybody likes code, so here's how we do it. We create one association at the time. Perhaps there is a better way, when creating hundreds of associations?
private bool CreateAssociation(ArcGIS.Core.Data.UtilityNetwork.AssociationType associationType, Row from, Row to)
{
RuntimeLogger.Debug("CreateAssociation - " + from.GetGlobalID() + " - " + to.GetGlobalID());
try
{
ArcGISProSDKUtilities.Instance().Geodatabase.ApplyEdits(() =>
{
Element fromElement = ArcGISProSDKUtilities.Instance().UtilityNetwork.CreateElement(from);
Element toElement = ArcGISProSDKUtilities.Instance().UtilityNetwork.CreateElement(to);
Association association = new Association(associationType, fromElement, toElement);
ArcGISProSDKUtilities.Instance().UtilityNetwork.AddAssociation(association);
});
return true;
}
catch (Exception e)
{
RuntimeLogger.Error("-- Create Association error: " + e.Message + " - " + e.StackTrace);
}
return false;
}
PS: We have the same issue when deploying large UN with the ArcGIS Pro tool. Associations takes a long time.