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

Are there any tricks involved in getting plug-in data sources to run at higher speeds, similar to the built in types? I've noticed that a simple plugin-data source will run many times slower than the equivelent data loaded from a shapefile or personal geodatabase, and the extra time seems to be mainly in the rendering phase.

Are there any tricks available to improve this in ArcObjects?

share|improve this question
up vote 2 down vote accepted

I suspect unmanaged C++ would be fastest. It's not clear to me if this:

This is a special interface that may be implemented by the plug-in cursor helper class of a plug-in data source. IPlugInFastQueryValues cannot be implemented in Visual Basic. Its FastQueryValues method is more efficient than the QueryValues method on IPlugInCursorHelper.

This interface is only appropriate for plug-in data sources implemented in C++.

... implies IPluginFastQuery won't work in C#. Maybe the documentation is from the pre-.NET era.

Might be worth trying. (I've never used it though).

share|improve this answer
IPluginFastQuery can be implemented in C#. The documentation in this case, indeed, does not take .NET languages into account. – Petr Krebs Oct 2 '10 at 3:19
Anyway, plugin data sources ARE slow, I guess there is not much you can do about that. This is an area of ArcGIS framework which has never been put into intensive use (do you know of any third-party plugins?) and as such has never been given enough attention performance-wise. – Petr Krebs Oct 2 '10 at 3:22
@petr k.: Esri's data interop extension uses it, as well as Safe's FME: – Reed Copsey Oct 2 '10 at 17:23
That being said - I'd like to see how to implement IPluginFastQuery in C#. It doesn't look possible without reverting to to C++, since you need to be able to deallocate BSTR references. If you know of a sample, I'd love to see it. @Kirk: Do you know if this interface really makes this much faster? – Reed Copsey Oct 2 '10 at 17:24
@Reed: sorry, not sure if it would make it much faster. Since it is only used for copying the attributes (and not the geometry) the amount of improvement probably depends on how many attributes (fields) you have. – Kirk Kuykendall Oct 2 '10 at 20:24

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.