8

This relates to ArcGIS Server 10.0 SP1, with data served from a file geodatabase polygon featureclass.

1) For performance reasons, is it a bad idea to have a featureclass with hundreds of attributes?

2) Is it a bad idea to create an ArcGIS Server map service (containing hundreds of attributes) from this featureclass?

3) Is there a performance implication if I build a featureLayer in the JS API, and only specify the attributes I currently need?

eg, the map service might contain 500 attributes, but I define my feature layer using

featureLayer.fields = [x, y, z]

Thanks for any advice, and please let me know if you need any further details.

2
  • Do you really mean ArcGIS Server 10.0 Service Pack 1, or the not-yet-released 10.1 version? Commented May 31, 2011 at 0:19
  • Sorry, I meant 10.0 SP1 Commented May 31, 2011 at 1:12

1 Answer 1

6

In short, it's not optimal, but it might not be too bad either...

On (3) - as long as you always specify the specific fields you want, the only extra "hit" should be on the initial request for the service metadata (which will be a bit larger due to the many fields).

If you know the "set" or "theme" of grouped fields your app will use (out of the 500), you might want to create layers in the mapservice that correspond accordingly. But if your field list is more dynamic, then go ahead as you were thinking.

However, as for performance, I would first focus your time on optimizing/generalizing your polygons (as the size of these are likely to be more of an impact on both your download time, drawing time, load etc). :)

2
  • Bjorn, thanks for the info, which is reassuring. re: generalisation, this occurs on-the-fly based on the map extent, and the polygons applicable for that scale will be shown. I'll post the link when the site is up. Commented May 31, 2011 at 2:44
  • 2
    FWIW, I created a featureclass with about 200 numeric attributes. If I define a featureLayer using FIELDS="*" and perform a query, the result is around 4.7 kb. If I define FIELDS as a single field, the result is around 280b. This seems to indicate that setting featureLayer.fields does a good job of only returning the required info. Commented Jun 8, 2011 at 6:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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