Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm using ArcMap and I'm trying to write a script that automates a join and then does some reporting.

I'm not very experienced with joins and I'm running into a problem. When I do a join manually (right clicking the shapefile and specifying the join) it does the join seemingly automatically. However, when I try and do a "Join Field" in ModelBuilder it takes a really long time. Minutes.

Is there a different method of automating a join using python or Model Builder that runs faster?

Thanks for any help.

share|improve this question
up vote 8 down vote accepted

If you look at the tool help you'll note that Join Field permanently adds 1 or more fields to the input table.

The tool you probably want is Add Join, which works more like the interactive join command to create a temporary join.

You'll probably want to use Remove Join when you're done though to clean up after yourself.

share|improve this answer

In addition to blah238's answer, you should also use the Add Attribute Index geoprocessing tool to create an index for the join. This tool accomplishes the same thing as this prompt:

enter image description here

This will greatly increase performance. Note that some read-only table file types (e.g. CSV) don't support attribute indices, so you'll have to export them to a .dbf file first.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.