Relationship classes: Maximizing performance

This topic applies to ArcEditor and ArcInfo only.

When you create a new relationship class, the primary and foreign keys are automatically indexed if they do not already have indexes. These indexes speed performance when you navigate a relationship or edit a relationship with messaging.

When editing a feature class or table in ArcMap that has messaging, the related class is opened by ArcGIS so it can respond to the message by moving or deleting itself or implementing some custom behavior. If the related class is not already in the map you are working with, ArcGIS will open it so it can respond to the message, then close it. For each edit, ArcGIS will reopen and close the related class, slowing performance. To prevent this, have all related classes in the map when working with a class in ArcMap. This way, the related classes are opened when they are added to ArcMap and remain open until you remove them from the map or finish your ArcMap session.

With many ArcInfo coverage data models, the Feature Attribute table contains as few items as possible, and many of the attributes for a feature class are contained in a related table. This can be done with geodatabase feature classes; however, navigating a relationship in the geodatabase is a more costly operation than navigating relates in INFO. In the INFO environment, it was common to store the symbology for a feature in an external, related table called a lookup table. This can still be done in the geodatabase using relationship classes and joining the two tables; however, symbolizing large datasets this way will be slow, even with indexes on the primary and foreign keys. Try to keep attributes for symbolization on the feature class's table. For performance considerations, it is recommended that symbology information be stored in the feature class.

Related Topics

Published 6/7/2010