Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I am maintaining a code on arcobjects 10.1, and there is a bug happening. I have a code that is parsing through a cursor, and generate a where clause statement to run it on a second query. So the code is like this

IFeatureCursor containsCursor = null;
IFeatureClass featureClass = null;
ISpatialFilter spatialFilter = new SpatialFilterClass();
IFeature tempFeature = null;

try
    {
        featureClass = workspace.OpenFeatureClass("tablename");
        spatialFilter.Geometry = operationalUnit.Shape;
        spatialFilter.GeometryField = featureClass.ShapeFieldName;
        spatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelContains;

        containsCursor = featureClass.Search(spatialFilter, true);
        tempFeature = containsCursor.NextFeature();
        String whereClause = null;
        String fieldName = tempFeature.Table.OIDFieldName;
        while (tempFeature != null)
        {
            if (tempFeature.HasOID)
            {
                whereClause = whereClause + String.Format(" and {0} <> {1}", tempFeature.Table.OIDFieldName, tempFeature.OID);
            }

            tempFeature = containsCursor.NextFeature();
        }                

        (do something with the where clause)
    }
    finally
    {
        Helper.ReleaseObject(featureClass);
        Helper.ReleaseObject(tempFeature);
        Helper.ReleaseObject(containsCursor);
        Helper.ReleaseObject(spatialFilter);
    }

The loop that is generating the where clause is talking long time. and when it is done, it tries to connect to the database, and the connection is dead.

Now, the funny thing is the slowness in only on the Dev server. When I run it on my machine is fast.

This is my full details information

On my Dev server: It is a virtual machine, with Windows 2008R2 I run ArcGIS serer 10.1 I run the process binding to the Server, and to the server license. I compile the process to run as 64 bit in order to bind to the server.

I access the database through Application Server SDE 9.3

P.S: I don't use direct connection (and we are not going to change the code to use it)

I measured the length of the statement, and on the server for 3500 records is taking > 45 seconds.

On my machine: my machine is Windows 7 with 8 gig Ram. I run ArcGIS Desktop. I compile the code to x86, and run binding to the desktop.

For the same amount of records it is taking < 4 seconds.

What is wrong there?

share|improve this question
    
Are they both connecting to the same data in the same way? The only difference truly is that one is on desktop (32-bit) and the other is on server (64-bit)? You might try ESRI Support to see if they have any suggestions. –  blah238 Mar 10 '13 at 0:20
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.