<?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 Re: Join Field - Incredibly Slow in Geoprocessing Questions</title>
    <link>https://community.esri.com/t5/geoprocessing-questions/join-field-incredibly-slow/m-p/449182#M15119</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hmmm.. Do the fields that you are joining with have indices, that can can improve performance significantly?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 19 Oct 2015 14:57:06 GMT</pubDate>
    <dc:creator>DuncanHornby</dc:creator>
    <dc:date>2015-10-19T14:57:06Z</dc:date>
    <item>
      <title>Join Field - Incredibly Slow</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/join-field-incredibly-slow/m-p/449175#M15112</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have a table containing some calculated results and a feature class with 4 text fields that I want to bring into the results table based on a shared ID field (Long). Both contain just fewer than 60,000 rows/features and both have indexes on the ID field used for the join.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If I do this using the Join Field tool in ArcMap 10.2.2 the process takes over 50 minutes. This is insane for a join on ~60k rows.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As a comparison I can do the process manually in ArcMap in under 4 minutes by creating new fields, joining data and calculate fields.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If I use the Add Join tool to join all fields the process takes 11 seconds. However, this brings in a whole heap of fields that I am not interested in.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;IMG alt="join-field-slow.png" class="image-1 jive-image" src="https://community.esri.com/legacyfs/online/129895_join-field-slow.png" style="height: auto;" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Additional notes: The process is to be run from within a .Net application so the manual process is not an option. The PC is an 8 core machine, the CPU usage sits at around 12% and there is about 10GB of available memory.&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Why is Join Field so incredibly slow?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Oct 2015 05:43:10 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/join-field-incredibly-slow/m-p/449175#M15112</guid>
      <dc:creator>OwenEarley</dc:creator>
      <dc:date>2015-10-07T05:43:10Z</dc:date>
    </item>
    <item>
      <title>Re: Join Field - Incredibly Slow</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/join-field-incredibly-slow/m-p/449176#M15113</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Join Field is slow. I do not have an explanation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Why not run the add field tool 4x, add join, and calculate within .NET?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In Python I have a little function that uses a dictionary to copy the data and it is scary fast by comparison.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Oct 2015 06:37:45 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/join-field-incredibly-slow/m-p/449176#M15113</guid>
      <dc:creator>curtvprice</dc:creator>
      <dc:date>2015-10-07T06:37:45Z</dc:date>
    </item>
    <item>
      <title>Re: Join Field - Incredibly Slow</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/join-field-incredibly-slow/m-p/449177#M15114</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Owen, I presume you saw the performance tips section in this link? &lt;A href="http://desktop.arcgis.com/en/desktop/latest/manage-data/tables/essentials-of-joining-tables.htm" title="http://desktop.arcgis.com/en/desktop/latest/manage-data/tables/essentials-of-joining-tables.htm"&gt;Essentials of joining tables—Help | ArcGIS for Desktop&lt;/A&gt; &lt;/P&gt;&lt;P&gt;​&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Oct 2015 07:22:15 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/join-field-incredibly-slow/m-p/449177#M15114</guid>
      <dc:creator>DanPatterson_Retired</dc:creator>
      <dc:date>2015-10-07T07:22:15Z</dc:date>
    </item>
    <item>
      <title>Re: Join Field - Incredibly Slow</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/join-field-incredibly-slow/m-p/449178#M15115</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I shoud have mentioned, the reason Add Join is instantaneous (11 sec) is it doesn't copy any data, it just sets up a dynamic link. It still can be slow when you try to copy the data (especially if the join fields aren't indexed), say if run Copy Features on the table with the join active.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But not as slow as Join Field!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 16 Oct 2015 03:37:42 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/join-field-incredibly-slow/m-p/449178#M15115</guid>
      <dc:creator>curtvprice</dc:creator>
      <dc:date>2015-10-16T03:37:42Z</dc:date>
    </item>
    <item>
      <title>Re: Join Field - Incredibly Slow</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/join-field-incredibly-slow/m-p/449179#M15116</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I would set up a model.&amp;nbsp; add fields, set up a join, then a calculate.&amp;nbsp; you can have numerous drop downs for what fields you want to claculate based on, and have your join fields set up too.&amp;nbsp; a little work up friont, but will save you time in the end.&amp;nbsp; Join field tool has always been slow.&amp;nbsp; if you really want to use it, hide all the other fields, or delete them going into the tool so you only have the fields you want.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 16 Oct 2015 15:35:00 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/join-field-incredibly-slow/m-p/449179#M15116</guid>
      <dc:creator>JustinMeyers</dc:creator>
      <dc:date>2015-10-16T15:35:00Z</dc:date>
    </item>
    <item>
      <title>Re: Join Field - Incredibly Slow</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/join-field-incredibly-slow/m-p/449180#M15117</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I've used this tool without issues but that has been within ArcMap. You make a vague reference to running this tool from within a .Net application, I would image the bottle neck is there. Without seeing the underlying code I don't think anyone can help you here.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 17 Oct 2015 08:47:02 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/join-field-incredibly-slow/m-p/449180#M15117</guid>
      <dc:creator>DuncanHornby</dc:creator>
      <dc:date>2015-10-17T08:47:02Z</dc:date>
    </item>
    <item>
      <title>Re: Join Field - Incredibly Slow</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/join-field-incredibly-slow/m-p/449181#M15118</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The .Net code just passes parameters to the geoprocessor object to run the tool. The delay is in the running of the tool itself.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Geoprocessor gp { get; set; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public ITrackCancel CancelTracker { get; set; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&amp;nbsp; 

&lt;SPAN style="color: rgba(0, 0, 0, 0); font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;public void GpAddJoin(string layer, string keyField, string joinTable, string joinField, bool keepAll = false)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var tool = new ESRI.ArcGIS.DataManagementTools.AddJoin();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tool.in_layer_or_view = layer;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tool.in_field = keyField;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tool.join_table = joinTable;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tool.join_field = joinField;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tool.join_type = (keepAll) ? "KEEP_ALL" : "KEEP_COMMON";
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.Execute(tool, CancelTracker);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 20:03:33 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/join-field-incredibly-slow/m-p/449181#M15118</guid>
      <dc:creator>OwenEarley</dc:creator>
      <dc:date>2021-12-11T20:03:33Z</dc:date>
    </item>
    <item>
      <title>Re: Join Field - Incredibly Slow</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/join-field-incredibly-slow/m-p/449182#M15119</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hmmm.. Do the fields that you are joining with have indices, that can can improve performance significantly?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Oct 2015 14:57:06 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/join-field-incredibly-slow/m-p/449182#M15119</guid>
      <dc:creator>DuncanHornby</dc:creator>
      <dc:date>2015-10-19T14:57:06Z</dc:date>
    </item>
    <item>
      <title>Re: Join Field - Incredibly Slow</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/join-field-incredibly-slow/m-p/449183#M15120</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Try this tool, which from memory works in both 10.x and Pro:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.arcgis.com/home/item.html?id=da1540fb59d84b7cb02627856f65a98d" title="http://www.arcgis.com/home/item.html?id=da1540fb59d84b7cb02627856f65a98d"&gt;http://www.arcgis.com/home/item.html?id=da1540fb59d84b7cb02627856f65a98d&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Oct 2015 15:29:53 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/join-field-incredibly-slow/m-p/449183#M15120</guid>
      <dc:creator>BruceHarold</dc:creator>
      <dc:date>2015-10-19T15:29:53Z</dc:date>
    </item>
    <item>
      <title>Re: Join Field - Incredibly Slow</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/join-field-incredibly-slow/m-p/449184#M15121</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Bruce, that script tool has a really interesting approach, you add the fields and then populate the values using an update cursor with a generator to limit how much memory gets used. The tool uses arcpy.da so it should work with 10.1 SP1 and later. You may want to add that tidbit to the info about the tool.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now that pandas will be shipped with 10.4 it will be interesting if some of its lightning fast table handling can be leveraged to create similar supercharged tools for common operations that take too long!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 21 Oct 2015 01:29:04 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/join-field-incredibly-slow/m-p/449184#M15121</guid>
      <dc:creator>curtvprice</dc:creator>
      <dc:date>2015-10-21T01:29:04Z</dc:date>
    </item>
    <item>
      <title>Re: Join Field - Incredibly Slow</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/join-field-incredibly-slow/m-p/449185#M15122</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;remembering that Pandas is just Numpy all dressed up &lt;IMG src="https://community.esri.com/legacyfs/online/emoticons/wink.png" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 21 Oct 2015 01:33:58 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/join-field-incredibly-slow/m-p/449185#M15122</guid>
      <dc:creator>DanPatterson_Retired</dc:creator>
      <dc:date>2015-10-21T01:33:58Z</dc:date>
    </item>
    <item>
      <title>Re: Join Field - Incredibly Slow</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/join-field-incredibly-slow/m-p/449186#M15123</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes, arcpy.da.ExtendTable is already there and suitable for the join field use case.&lt;/P&gt;&lt;P&gt;My tool has an issue if your key field is unicode, byte order drives the sort used to join whereas the collation order of a language may be different.&amp;nbsp; I didn't pursue fixing that - it looked hard.&amp;nbsp; Maybe a temporary SQLite database could be used.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 21 Oct 2015 15:38:03 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/join-field-incredibly-slow/m-p/449186#M15123</guid>
      <dc:creator>BruceHarold</dc:creator>
      <dc:date>2015-10-21T15:38:03Z</dc:date>
    </item>
    <item>
      <title>Re: Join Field - Incredibly Slow</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/join-field-incredibly-slow/m-p/449187#M15124</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This tool is very impressive, joining the fields in just over 12 seconds.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For my original issue, I ended up changing the way that the data was being processed to avoid the join field geoprocessing tool altogether. However, I am marking Bruce's answer as correct as it is most likely to help others that are searching for a solution to this problem.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 21 Oct 2015 20:52:41 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/join-field-incredibly-slow/m-p/449187#M15124</guid>
      <dc:creator>OwenEarley</dc:creator>
      <dc:date>2015-10-21T20:52:41Z</dc:date>
    </item>
    <item>
      <title>Re: Join Field - Incredibly Slow</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/join-field-incredibly-slow/m-p/449188#M15125</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;There is a huge difference between 3 tools. To me, I used "AddJoin_management" in python. It is working very well. But the secret is input data. Using file-base table as the main Layer is perfect, however, when we use a Geo-database table, the performance is dropping dramatically!&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;SPAN style="color: black;"&gt;fishNetMinimumPointsDistance = os.path.join(arcpy.env.scratchFolder, &lt;/SPAN&gt;&lt;STRONG style="color: green;"&gt;'fishNetMinimumPointsDistance.dbf'&lt;/STRONG&gt;&lt;SPAN style="color: black;"&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: black;"&gt;fishNetPointMapToLayer = arcpy.mapping.Layer(fishNetPointMap)&lt;BR /&gt; arcpy.AddJoin_management(fishNetPointMapToLayer, &lt;/SPAN&gt;&lt;STRONG style="color: green;"&gt;"FID"&lt;/STRONG&gt;&lt;SPAN style="color: black;"&gt;, fishNetMinimumPointsDistance, &lt;/SPAN&gt;&lt;STRONG style="color: green;"&gt;"IN_FID"&lt;/STRONG&gt;&lt;SPAN style="color: black;"&gt;, &lt;/SPAN&gt;&lt;STRONG style="color: green;"&gt;"KEEP_ALL"&lt;/STRONG&gt;&lt;SPAN style="color: black;"&gt;)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 19 Mar 2017 15:25:24 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/join-field-incredibly-slow/m-p/449188#M15125</guid>
      <dc:creator>MohammadrezaNikfal1</dc:creator>
      <dc:date>2017-03-19T15:25:24Z</dc:date>
    </item>
  </channel>
</rss>

