<?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 management.CreateDatabaseConnection takes 2 minutes in ArcGIS Pro SDK Questions</title>
    <link>https://community.esri.com/t5/arcgis-pro-sdk-questions/management-createdatabaseconnection-takes-2/m-p/1325382#M10311</link>
    <description>&lt;P&gt;I have now run this about a 100 times and am getting consistent results. Call for&amp;nbsp;management.CreateDatabaseConnection via&amp;nbsp;Geoprocessing.ExecuteToolAsync takes minimum 2 minutes, sometimes even 3 minutes.&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;internal static object[] GetSdeFileParams()
{
	var out_folder_path = Project.Current.HomeFolderPath;
	var out_name = "connection.sde";
	var database_platform = "SQL_SERVER";
	var instance = "&amp;lt;some&amp;gt;";
	var account_authentication = "DATABASE_AUTH";
	var username = "sa";
	var password = "&amp;lt;some&amp;gt;";
	var save_user_pass = "SAVE_USERNAME";
	var database = "&amp;lt;some&amp;gt;";

	return new object[]
			{
				out_folder_path,
				out_name,
				database_platform,
				instance,
				account_authentication,
				username,
				password,
				save_user_pass,
				database
			};
}


var p = GetSdeFileParams();
var va = Geoprocessing.MakeValueArray(p);
IGPResult result = await Geoprocessing.ExecuteToolAsync("management.CreateDatabaseConnection", va);&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am doing this because I want to add a SQL connection to the Catalog:&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;await QueuedTask.Run(() =&amp;gt;
{         
	var sdeFilePath = System.IO.Path.Combine(Project.Current.HomeFolderPath, "connection.sde");
	var item = ItemFactory.Instance.Create(sdeFilePath);
	var gdbitem = item as GDBProjectItem;
	Project.Current.AddItem(gdbitem);
});&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So that I can later add layers from it:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;return QueuedTask.Run(() =&amp;gt;
{
	var item = GetGDBProjectItem(); 
	var gdb = item.GetDatastore() as Geodatabase;
	using var fc = gdb.OpenDataset&amp;lt;FeatureClass&amp;gt;(gdbFeatureClassName);
	var layerParams = new FeatureLayerCreationParams(fc) { Name = displayName, MapMemberIndex = _bottom };
	var layer = LayerFactory.Instance.CreateLayer&amp;lt;FeatureLayer&amp;gt;(layerParams, MapView.Active.Map);
	layer.SetVisibility(isVisible);
	layer.SetRenderer(renderer);
});

...

private static GDBProjectItem GetGDBProjectItem()
{
    return Project.Current.GetItems&amp;lt;GDBProjectItem&amp;gt;().FirstOrDefault(x =&amp;gt; ((GDBProjectItem)x).Name == "connection.sde");
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;On top of that I am getting inconsistent results when timing other tools:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;CreateFeatureClass - calls the management.CreateFeatureClass function, same parameters every time&lt;/LI&gt;&lt;LI&gt;AddFeatureLayerFromDatabaseConnection - calls the method shown above that adds the feature layer from the db connection pulled from the project items&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;CreateFeatureClass Time taken: 3.9652852 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 5.6289978 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 1.1572572 seconds&lt;BR /&gt;CreateDatabaseConnection Time taken: 122.6314865 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 1.7061173 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 2.7112893 seconds&lt;BR /&gt;AddFeatureLayerFromDatabaseConnection Time taken: 0.0033139 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 10.8855607 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 1.9875031 seconds&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;CreateFeatureClass Time taken: 2.8461999 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 1.2559917 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 1.2581186 seconds&lt;BR /&gt;CreateDatabaseConnection Time taken: 117.7707755 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 0.6275694 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 0.6645731 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 0.7390637 seconds&lt;BR /&gt;AddFeatureLayerFromDatabaseConnection Time taken: 0.0016465 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 7.3610697 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 7.3479213 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 1.3977875 seconds&lt;BR /&gt;AddFeatureLayerFromDatabaseConnection Time taken: 0.0009356 seconds&lt;BR /&gt;AddFeatureLayerFromDatabaseConnection Time taken: 0.0003054 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 2.4290515 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 2.2437601 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 2.1025431 seconds&lt;BR /&gt;AddFeatureLayerFromDatabaseConnection Time taken: 0.0003309 seconds&lt;BR /&gt;AddFeatureLayerFromDatabaseConnection Time taken: 0.00035 seconds&lt;BR /&gt;AddFeatureLayerFromDatabaseConnection Time taken: 0.0003141 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 3.6931787 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 3.5080202 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 3.4815227 seconds&lt;BR /&gt;Done&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I can live with 7 seconds, but it is very hard to live with 2 or 3 minutes. If I add the same connection manually via Pro's GUI, it is instant.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 05 Sep 2023 13:35:18 GMT</pubDate>
    <dc:creator>ViktorSafar</dc:creator>
    <dc:date>2023-09-05T13:35:18Z</dc:date>
    <item>
      <title>management.CreateDatabaseConnection takes 2 minutes</title>
      <link>https://community.esri.com/t5/arcgis-pro-sdk-questions/management-createdatabaseconnection-takes-2/m-p/1325382#M10311</link>
      <description>&lt;P&gt;I have now run this about a 100 times and am getting consistent results. Call for&amp;nbsp;management.CreateDatabaseConnection via&amp;nbsp;Geoprocessing.ExecuteToolAsync takes minimum 2 minutes, sometimes even 3 minutes.&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;internal static object[] GetSdeFileParams()
{
	var out_folder_path = Project.Current.HomeFolderPath;
	var out_name = "connection.sde";
	var database_platform = "SQL_SERVER";
	var instance = "&amp;lt;some&amp;gt;";
	var account_authentication = "DATABASE_AUTH";
	var username = "sa";
	var password = "&amp;lt;some&amp;gt;";
	var save_user_pass = "SAVE_USERNAME";
	var database = "&amp;lt;some&amp;gt;";

	return new object[]
			{
				out_folder_path,
				out_name,
				database_platform,
				instance,
				account_authentication,
				username,
				password,
				save_user_pass,
				database
			};
}


var p = GetSdeFileParams();
var va = Geoprocessing.MakeValueArray(p);
IGPResult result = await Geoprocessing.ExecuteToolAsync("management.CreateDatabaseConnection", va);&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am doing this because I want to add a SQL connection to the Catalog:&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;await QueuedTask.Run(() =&amp;gt;
{         
	var sdeFilePath = System.IO.Path.Combine(Project.Current.HomeFolderPath, "connection.sde");
	var item = ItemFactory.Instance.Create(sdeFilePath);
	var gdbitem = item as GDBProjectItem;
	Project.Current.AddItem(gdbitem);
});&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So that I can later add layers from it:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;return QueuedTask.Run(() =&amp;gt;
{
	var item = GetGDBProjectItem(); 
	var gdb = item.GetDatastore() as Geodatabase;
	using var fc = gdb.OpenDataset&amp;lt;FeatureClass&amp;gt;(gdbFeatureClassName);
	var layerParams = new FeatureLayerCreationParams(fc) { Name = displayName, MapMemberIndex = _bottom };
	var layer = LayerFactory.Instance.CreateLayer&amp;lt;FeatureLayer&amp;gt;(layerParams, MapView.Active.Map);
	layer.SetVisibility(isVisible);
	layer.SetRenderer(renderer);
});

...

private static GDBProjectItem GetGDBProjectItem()
{
    return Project.Current.GetItems&amp;lt;GDBProjectItem&amp;gt;().FirstOrDefault(x =&amp;gt; ((GDBProjectItem)x).Name == "connection.sde");
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;On top of that I am getting inconsistent results when timing other tools:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;CreateFeatureClass - calls the management.CreateFeatureClass function, same parameters every time&lt;/LI&gt;&lt;LI&gt;AddFeatureLayerFromDatabaseConnection - calls the method shown above that adds the feature layer from the db connection pulled from the project items&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;CreateFeatureClass Time taken: 3.9652852 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 5.6289978 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 1.1572572 seconds&lt;BR /&gt;CreateDatabaseConnection Time taken: 122.6314865 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 1.7061173 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 2.7112893 seconds&lt;BR /&gt;AddFeatureLayerFromDatabaseConnection Time taken: 0.0033139 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 10.8855607 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 1.9875031 seconds&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;CreateFeatureClass Time taken: 2.8461999 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 1.2559917 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 1.2581186 seconds&lt;BR /&gt;CreateDatabaseConnection Time taken: 117.7707755 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 0.6275694 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 0.6645731 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 0.7390637 seconds&lt;BR /&gt;AddFeatureLayerFromDatabaseConnection Time taken: 0.0016465 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 7.3610697 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 7.3479213 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 1.3977875 seconds&lt;BR /&gt;AddFeatureLayerFromDatabaseConnection Time taken: 0.0009356 seconds&lt;BR /&gt;AddFeatureLayerFromDatabaseConnection Time taken: 0.0003054 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 2.4290515 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 2.2437601 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 2.1025431 seconds&lt;BR /&gt;AddFeatureLayerFromDatabaseConnection Time taken: 0.0003309 seconds&lt;BR /&gt;AddFeatureLayerFromDatabaseConnection Time taken: 0.00035 seconds&lt;BR /&gt;AddFeatureLayerFromDatabaseConnection Time taken: 0.0003141 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 3.6931787 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 3.5080202 seconds&lt;BR /&gt;CreateFeatureClass Time taken: 3.4815227 seconds&lt;BR /&gt;Done&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I can live with 7 seconds, but it is very hard to live with 2 or 3 minutes. If I add the same connection manually via Pro's GUI, it is instant.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 05 Sep 2023 13:35:18 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-sdk-questions/management-createdatabaseconnection-takes-2/m-p/1325382#M10311</guid>
      <dc:creator>ViktorSafar</dc:creator>
      <dc:date>2023-09-05T13:35:18Z</dc:date>
    </item>
  </channel>
</rss>

