I have a feature class that I am referencing twice in my map,

  1. for "active" features that are "the subject" of the map page as a Feature Layer
  2. second Feature Layer that is grayed out/"inactive" on the map.

Is it faster/more efficient for ArcMap to reference the same Feature Class twice or if I would see some improvement if I made a copy of the data in the same geodatabase since I'm making about 15,000 pages?

These two layers are being "filtered" based on the "Match" / "Doesn't Match" criteria in the page definitions queries.


This sounded like a familiar question:

GeoNet question on DQ efficiency

Usually, whether something is "active" could change frequently, which would tilt the answer toward using definition queries.

Another point to consider, perhaps a long shot, is do you have secondary indexes (non-key-field attribute indexes) on any fields? Can you add one on the active status field and try rerunning the query? A secondary index can speed sorting and joining; I am not sure if ArcMap utilizes this well when doing selects.


This sounds like a use case for Page Definition Queries:

Page Definition Queries allow you to specify which features of a layer draw based on an SQL query. Though similar to other definition queries, Page Definition Queries differ in that they only work with Data Driven Pages and are dynamic. Features are filtered based on the current page. As you iterate through the pages, the query changes, and a new set of features draw appropriate to the new page.

You would use Match for "active" features, and Don't Match for "inactive" features.

  • So I am using that, but I am symbolizing based on whether it matches or doesn't. The question is about whether or not performance is affected if I have two layers of the same feature class, or if it would be faster if I referenced a different, but identical feature class. – bwp8nt Sep 19 '18 at 21:22
  • @bwp8nt the way to determine that is by running and timing the two alternatives. – PolyGeo Sep 19 '18 at 21:24
  • Agreed, the intent was to understand if there was an underlying and known conflict in the software. I'll have to design an experiment i guess... – bwp8nt Sep 19 '18 at 21:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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