I have a map service that has more than 60 data layers. For faster performance, I have separated the data with daily updates as a dynamic service. I still have a map service that base data (50+ layers). I have implemented scale rendering to make sure that only relevant content is shown at a given scale. I am still not getting good speed and trying to figure out the best way to make this service even faster.

I am looking for some MAJOR strategies that would allow to make it faster. These services are intended to be used within a Silverlight application.

  • Is it possible for you to split the layers into multiple services? Or, even better, multiple servers? Jul 21 '11 at 23:22
  • I Agree. Splitting into multiple services (ideally one per layer) would be what I would recommend. H/W scaling would depend on your affordability...as the cost could be high.
    – ujjwalesri
    Jul 22 '11 at 5:07
  • Keep in mind that at 10.1 you will have dynamic layers which will solve this issue for you.
    – jakc
    Jul 22 '11 at 9:11

Our strategy is to cache everything that is not changing regularly. We then use software called FME to run transformations on our data before we publish that data to a file geodatabase on our servers. We merge any joins that we want to query/display, strip all the columns that we are not querying/displaying, and generalize all the geometries. We push this data to our servers and they use a local copy of the data. All of this can be done by hand without FME.

We use map service documents to display our dynamic services (msd) and we also use simple symbology with scale dependent rendering like you said.

  • our data is coming from SDE, it contains large amount of data. I was under the impression that sde would have better perofrmance compared to FGDB. What about projection, my msd is in web mercator (to use standard tiling scheme) but data layers are in lat/Long. Woudl that make a difference
    – jayGIS
    Jul 22 '11 at 15:54
  • FGDB is going to give you the best performance over SDE any day. Reprojecting your data on the fly is also going to give you a perf hit. Reproject your data from SDE to the FGDB on your server. I can add a link to a perf esri video after I find it.
    – Steve
    Jul 26 '11 at 16:06
  • proceedings.esri.com/library/userconf/devsummit11/videos/… is a good resource. you can fast foward to the middle or end for the findings.
    – Steve
    Jul 26 '11 at 16:43

Well, you mentioned that you made it a dynamic service. I would suggest caching it especially if it is your basemap. I also would suggest simplifying your geometries. I am not sure what server stack you are using so I cannot suggest a software for you off hand. My coworkers and I have had to do this multiple times. We use an ESRI Server stack and they have a built in one that we were able to run, but I have seen other free ones out there. How are you storing your data and what stack are you using?

  • I am not sure about server stack, I know this much that I am using virtual server to run cache jobs. I am also looking for some ideas on good server configuration that would allow faster caching, At the moment, an area of 250Km2 takes about 11 hours to finish caching for all levels of standard tiling scheme. Iin terms of environment, it's a Windows Server 2008R2 on quad-core AMD opteron(tm) processor 2389 2.9 GHZ with 4GB RAM.
    – jayGIS
    Jul 22 '11 at 16:10
  • If on some of your layers you don't mind losing some accuracy here is a link to the ESRI Simplification toolset. Also, have you done the appropriate indexing to speed up your data requests? You may benefit from some indexing you aren't limited to just indexing your Geometries and primary and unique keys.
    – dkroy
    Jul 22 '11 at 18:29

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.