A file gdb will almost always outperform an entreprise gdb. The model is much, much simpler, you are just writing to a file on your hard drive. As long as on-access scanner isn't killing the performance it will be much faster.For the code side, I would consider not using an edit session or at least not use an edit operation if you can get away with it. The option to turn off the undo/redo doesn't always work (Note that the supression of undo/redo logging is not supported for remote database workspaces.) I would consider using an insert cursor and calling flush every so many records (100? something to experiment with.) CreateFeature for sure will create an objectId for each call when it is called so, right there sql statements are being generated one at the time...I suggest you look at the following link and avoid creating the features one by one. There are more direct ways of doing this. If you need to process the data, you can do that in the fgdb and then load.http://help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/index.html#//0001000003rp000000From the database side, a lot can be done tweak the performance. The trick is to know what is holding you up. Do you have versioning? How big is the user temp space? What is going on with the roll back log? Do you have replication? These are some of the many things you need to master to get performance out of your database. A good orace DBA can be invaluable in figuring out performance on the Oracle side. You can also consider using spatial SQL to insert the features directly through the SQL geodatabase APIhttp://resources.arcgis.com/en/help/main/10.1/index.html#//006z00000008000000I have also dabbled in exporting recordsets into XML and importing them as a new featureclass in Oracle, maybe that can work for you. Variable size sample sets, some good metrics and some experimentation, I think you will find an efficient way of doing this.
Using IFeature.Store is the slowest way to save changes to a gdb if you're making large numbers of edits. Instead, use IFeatureclass.Update to get an update cursor and call IFeatureCursor.UpdateFeature where you would normally call Store. For creating new features, use IFeatureClass.Insert to get the cursor and IFeatureCursor.InsertFeature. Also, before you start, place the feature classes you're writing to into LoadOnly mode using IFeatureClassLoad. Take them out of LoadOnly mode when you're done.
Signed in members can post, follow updates, and more. New here? Register a free account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.