<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Slow performance reading FGDB in File Geodatabase API Questions</title>
    <link>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311644#M506</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Sorry my bad English!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;~5sg -&amp;gt; approximately 5 seconds&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The data is a polygon feature class, about 500,000 records with aprox 500mb shapefile (SHP+DBF+SHX).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I dont cache the data, I am reading the data as a IDataReader ADO.NET. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Speaking in the context of a map viewer, most of the time only need to read the geometry. If a user sets a color theme based on an attribute, then if that is necessary to read any of the attributes. But the "expensive" read the rest may be postponed. This would be possible if you could decouple row of your reader, or if it could get a "byte stream" of data to be treated as necessary&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 27 Jun 2011 12:29:20 GMT</pubDate>
    <dc:creator>ahuarte</dc:creator>
    <dc:date>2011-06-27T12:29:20Z</dc:date>
    <item>
      <title>Slow performance reading FGDB</title>
      <link>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311642#M504</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello, I'm using this wonderful API to read FGDBs. I'm checking the performance and I am not getting very favorable results compared to the same data in ShapeFile.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;For a layer ~500,000 records, the FGDB reader needs ~5sg, but the SHAPE reader less than half. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The sourcecode is equivalent, but if it is true that I use FileMapping in the SHAPE reader and I load the DBF values only when needed. The FGDB reader is implemented in a pair C# and C++ .NET DLLs. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It In order to accelerate the FGDB API, I wonder if FileMapping is used internally in the API.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Is it possible to raise some of these optimizations?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1. Access the values ??????in a row, also for field index.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2. Capable of maintaining data in a row so disconnected from their 'EnumRows' father, to load data only when needed, and not have to read all the row values ??????forever. Or access the data using a byte stream recovered from the row, or something&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Jun 2011 06:05:34 GMT</pubDate>
      <guid>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311642#M504</guid>
      <dc:creator>ahuarte</dc:creator>
      <dc:date>2011-06-27T06:05:34Z</dc:date>
    </item>
    <item>
      <title>Re: Slow performance reading FGDB</title>
      <link>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311643#M505</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;What are you using to read the shape file?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;What is "~5sg"?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Is the data point, line, or polygon?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;How large is the file that corresponds to the table in the FGDB?&amp;nbsp; How large are the .shp and .dbf &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;files of the shapefile?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Are you saying that you cache 500K rows of geometry in RAM, and only access attributes when &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;you need them?&amp;nbsp; What is your access criteria?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;- V&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Jun 2011 11:14:13 GMT</pubDate>
      <guid>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311643#M505</guid>
      <dc:creator>VinceAngelo</dc:creator>
      <dc:date>2011-06-27T11:14:13Z</dc:date>
    </item>
    <item>
      <title>Re: Slow performance reading FGDB</title>
      <link>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311644#M506</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Sorry my bad English!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;~5sg -&amp;gt; approximately 5 seconds&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The data is a polygon feature class, about 500,000 records with aprox 500mb shapefile (SHP+DBF+SHX).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I dont cache the data, I am reading the data as a IDataReader ADO.NET. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Speaking in the context of a map viewer, most of the time only need to read the geometry. If a user sets a color theme based on an attribute, then if that is necessary to read any of the attributes. But the "expensive" read the rest may be postponed. This would be possible if you could decouple row of your reader, or if it could get a "byte stream" of data to be treated as necessary&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Jun 2011 12:29:20 GMT</pubDate>
      <guid>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311644#M506</guid>
      <dc:creator>ahuarte</dc:creator>
      <dc:date>2011-06-27T12:29:20Z</dc:date>
    </item>
    <item>
      <title>Re: Slow performance reading FGDB</title>
      <link>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311645#M507</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Five seconds doesn't sound slow to do a full table scan on 500Mb of data.&amp;nbsp; Can you provide&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;the code you're using in both cases?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;There are a number of advantages of file geodatabases over shapefiles, among them:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;+ Support for numeric nulls&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;+ Second resolution date type (vice day resolution of dBase)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;+ Variable width attribute rows (vice dBase fixed-width)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;+ Unlimited width string fields (vice 254 in dBase)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;+ 64 character attribute field names (vice 11 in dBase)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;+ Full support for all types supported by ArcGIS (NSTRING, UUID, CLOB, NCLOB)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;+ SQL query access&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;+ Open access to spatial and attribute index queries&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;- V&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Jun 2011 13:59:24 GMT</pubDate>
      <guid>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311645#M507</guid>
      <dc:creator>VinceAngelo</dc:creator>
      <dc:date>2011-06-27T13:59:24Z</dc:date>
    </item>
    <item>
      <title>Re: Slow performance reading FGDB</title>
      <link>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311646#M508</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I agree, this time nor does it seem slow :-), but if the user are accustomed to wait 2 seconds rendering a layer, with the format change this time is twice and the user does not mind the advantage of new format.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I think that the key is the "expensive" calling to FileGDBAPI::Row::GetXXXX() in order to recover the attribute values of a row, n fields -&amp;gt; n calls to these functions.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Most of the time the calls to these functions are unnecessary, but I have to make if you need to retrieve later any alphanumeric values �??of a geometry. If possible get a single "byte stream" of the attribute values of a row like your "ShapeBuffer" for the geometry, the time savings will be greater, the greater the number of fields (n fields -&amp;gt; the best one call, in the worst case n+1 calls).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you very much for your replies!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Jun 2011 05:38:39 GMT</pubDate>
      <guid>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311646#M508</guid>
      <dc:creator>ahuarte</dc:creator>
      <dc:date>2011-06-28T05:38:39Z</dc:date>
    </item>
    <item>
      <title>Re: Slow performance reading FGDB</title>
      <link>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311647#M509</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;You haven't provided your code, and I haven't done performance benchmarking on FGDBAPI, &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;but I'm willing to wager my son (with a 103.5 fever and cranky as all get-out) that the real &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;cost is in reading the row from disk, not in the accessor function to copy the row members&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;from memory.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm quite fond of the ArcSDE 'C' API which uses row accessor functions *or* bind variables -- &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;It's so much cleaner to organize a "copy" as:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt; 
while ((sr = SE_stream_fetch(stream1))== SE_SUCCESS) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((sr = SE_stream_execute(stream2)) != SE_SUCCESS) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* handle write error */
}&amp;nbsp;&amp;nbsp;&amp;nbsp; }
if (sr != SE_FINISHED) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; /* handle read error */
}
&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;but the accessor design pattern is well-established (especially in Java, where bind variables &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;are considered poor form).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The only time that accessor functions are really inefficient is when transferring large BLOBs&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(and CLOBs, NCLOBs,..., and geometries). The majority of your cost difference is in the fact &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;that you're *not* reading the .dbf component (and therefore doing half the I/O).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;You can certainly file an enhancement request for an alternate method to access the row&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;buffer, but since ArcGIS doesn't even use bind variables with ArcSDE, it's probably going &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;to be a hard sell.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;- V&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 14:54:23 GMT</pubDate>
      <guid>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311647#M509</guid>
      <dc:creator>VinceAngelo</dc:creator>
      <dc:date>2021-12-11T14:54:23Z</dc:date>
    </item>
    <item>
      <title>Re: Slow performance reading FGDB</title>
      <link>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311648#M510</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;The important thing, I hope you son gets better soon!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regarding the rest, I know what to say. It is clear that the cost is reading the disc. It is also clear that the best optimization of a code is not to make unnecessary calls.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I do not know if I've managed to explain the particular casuistry.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I do not mean to be read data from disk twice, but that all the attributes of the row can be obtained in one byte[] or something.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Note that now I must make n calls C#/C++ to obtain the values â??â??of the attributes and then in the render of the geometry on a map are not required.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I think adding this functionality can be interesting, defer the interpretation of attributes, as read from the disk to a single byte stream to be interpreted by the client code when they are strictly necessary.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;

FgdbDataRow row = ...

// #0) Geometry.
Element tempElement = Element.FromShape( row.GetGeometry() );

// #1) Attributes.
element.pProperties = new Property[10];

// #1-A) -&amp;gt; Current Option.
for (int i = 1, icount = 10; i &amp;lt; icount; i++)
{
&amp;nbsp;&amp;nbsp; object value = null;

&amp;nbsp;&amp;nbsp; switch (m_oFeatureClass.GetEsriPropertyType(field))
&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case EsriPropertyType.esriFieldTypeInteger:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int valueT = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (row.GetInteger(property.Name, ref valueT)) value = valueT; //-&amp;gt; ### 10 calls C#/C++ to Row::GetInteger!
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; property.Value = value;
}

// #1-B) -&amp;gt; Proposed Option.
byte[] pMstream = &lt;STRONG&gt;row.GetAttributesBuffer(); //-&amp;gt; One call!&lt;/STRONG&gt;
element.BufferAttribs = pMstream;
...
for (int i = 1, icount = 10, offsetPos = 0; i &amp;lt; icount; i++)
{
&amp;nbsp;&amp;nbsp; // If I need de i-attributte.
&amp;nbsp;&amp;nbsp; int value = BitConverter.ToInt32(element.BufferAttribs, offsetPos+=4);
&amp;nbsp;&amp;nbsp; property.Value = value;
}


&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you very much!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 16:19:41 GMT</pubDate>
      <guid>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311648#M510</guid>
      <dc:creator>ahuarte</dc:creator>
      <dc:date>2021-12-12T16:19:41Z</dc:date>
    </item>
    <item>
      <title>Re: Slow performance reading FGDB</title>
      <link>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311649#M511</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;My son's doing fine now, thanks.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;There is no reason to iterate the attribute list if you don't need the attributes.&amp;nbsp; I doubt it's&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;required even if you do select all the columns, but I know it's not required if you select&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;only the geometry column in the Search request that generates the EnumRows iterator.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(If nothing else, you should specify the geometry column first.)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;File Geodatabase format uses a compression algoritm on the geometries, but if the &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;"a000*.gdbtable" that corresponds to your table is larger than the .shp on the shapefile,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;there is no chance for the FGDB to be faster in a full-table scan query (and even if it is &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;smaller, there's still the decompression cost to factor into the equation).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'd recommend you modify the Search, then instrument your code with a millisecond &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;resolution timer, so you can see where the application is spending its time while reading&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;in the two different formats.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;- V&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 29 Jun 2011 12:52:18 GMT</pubDate>
      <guid>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311649#M511</guid>
      <dc:creator>VinceAngelo</dc:creator>
      <dc:date>2011-06-29T12:52:18Z</dc:date>
    </item>
    <item>
      <title>Re: Slow performance reading FGDB</title>
      <link>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311650#M512</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;The cost of time I already know which are the n calls Row::GetXXX () via C#/C++, my SHAPE reader does not make a priori.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The problem is that in reading the geometry do not know what attributes are required in the subsequent use of it will make the application, therefore I load all or do I have everything necessary for that geometry.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In the painting of the map, the Renderer can use some of the attributes of the geometries, but a priori in reading of the element I do not know.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In the case of reading from SHAPE I only get the byte[] of the row of DBF, and if when the Renderer is painting and requires a value, then I parse the stream.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;For heavy layers this behavior saves precious time (~6sec -&amp;gt; ~3.6sec for 500,000 records).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So suggested a similar approach it was possible for FGDBs.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you very much&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 30 Jun 2011 07:51:36 GMT</pubDate>
      <guid>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311650#M512</guid>
      <dc:creator>ahuarte</dc:creator>
      <dc:date>2011-06-30T07:51:36Z</dc:date>
    </item>
    <item>
      <title>Re: Slow performance reading FGDB</title>
      <link>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311651#M513</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I can't think of a single application I've ever written that needed a full table scan for every query&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(and didn't know exactly what attributes would be needed). FGDB would be much faster than &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;shapefile with a spatial subset, but because of your particular requirements, shapefile format&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;is going to be your best option.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;- V&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 30 Jun 2011 10:43:49 GMT</pubDate>
      <guid>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311651#M513</guid>
      <dc:creator>VinceAngelo</dc:creator>
      <dc:date>2011-06-30T10:43:49Z</dc:date>
    </item>
    <item>
      <title>Re: Slow performance reading FGDB</title>
      <link>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311652#M514</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;For example I've detailed.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Or an very configurable fast map viewer or a GIS format converter .... where the application does not know the input format of the geometries, and the format reader does not know the use geometries that will make them.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Not to lose, all I ask to see if feasible, is there a method on the Row that offers a byte[] of the attributes similar to what is the geometry.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you very much&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Jul 2011 08:31:05 GMT</pubDate>
      <guid>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311652#M514</guid>
      <dc:creator>ahuarte</dc:creator>
      <dc:date>2011-07-01T08:31:05Z</dc:date>
    </item>
    <item>
      <title>Re: Slow performance reading FGDB</title>
      <link>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311653#M515</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;The problem with your #1-B example is that it ignores the possibility of NULLs. If you want&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;to submit an ER at &lt;/SPAN&gt;&lt;A href="http://ideas.esri.com"&gt;ideas.esri.com&lt;/A&gt;&lt;SPAN&gt;, you'll need to add a bitmap of length (ncols+7)/8 bytes&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;to the front of the bytestream. I still don't think this will result in significant time savings.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;- V&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Jul 2011 09:46:47 GMT</pubDate>
      <guid>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311653#M515</guid>
      <dc:creator>VinceAngelo</dc:creator>
      <dc:date>2011-07-01T09:46:47Z</dc:date>
    </item>
    <item>
      <title>Re: Slow performance reading FGDB</title>
      <link>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311654#M516</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;ok, thanks&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I will try in ideas.esri.com&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Jul 2011 06:56:43 GMT</pubDate>
      <guid>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311654#M516</guid>
      <dc:creator>ahuarte</dc:creator>
      <dc:date>2011-07-04T06:56:43Z</dc:date>
    </item>
    <item>
      <title>Re: Slow performance reading FGDB</title>
      <link>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311655#M517</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;Just to close up this thread, I did some experimentation with some custom &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;tools to measure access performance of a random-generated dataset...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;First I generated a 100k row shapefile with roughly the same size .shp as&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;.dbf (50.8Mb and 49.1Mb, respectively). Then I used ArcGIS 10 to populate &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;it in a file geodatabase (66.7Mb).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;Next I used a 'C' app to time how long it took to read the files (pure I/O,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;without any semantic parsing). On my reference machine (a 4-CPU/4Gb RAM &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;laptop running 64-bit Windows 7) [and after an initial read pass to cache&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;the I/O], it took 220, 188, and 265 milliseconds to access the .shp, .dbf,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;and a0000000a.gdbtable files (respectively). Each time represents ~1 micro-&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;second per 512-byte block (kicking the blocksize up to 256k with setvbuf &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;dropped all access times to under 100ms).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;I then wrote a custom app with the File Geodatabase API, and applied the&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;millisecond timer to break down the processing times on a FGDB query into &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;three components -- Open (OpenGeodatabase + Geodatabase.OpenTable +&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;table.GetFieldInformation + various FieldInfo calls), Read (table.Search +&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;EnumRows.Next), and Get (row.Get*), plus a total:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;FGDBa 0 1229 1673 2902&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;Parsing just the geometry data (without a change to the selection list)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;was much faster:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;FGDBg 0 1170 0 1170&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;As was limiting the selection list to just "SHAPE" (though, curiously, not &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;as fast as a "*" column list and just calling GetGeometry):&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;FGDBs 16 1122 48 1186&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;I then instrumented a shapefile reader with the same millisecond timer and &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;compared the access performance using five different access methodologies:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;A) Bind query on all columns&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;B) Bind query on *only* the .shp component (simulating an empty .dbf)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;C) Using getter by column number on all columns&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;D) Using getter by column name on all columns&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;E) Using a custom getStream function&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;Timing is in milliseconds, with values Open (includes column describe),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;Read, Get, and Total --&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;10 cols:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;shpA 0 2387 0 2387&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;shpB 0 1622 0 1622&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;shpC 0 2372 280 2652&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;shpD 16 2480 484 2980&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;shpE 0 2449 125 2574&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;To determine the impact of column count I reorganized the dBase attributes&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;into more columns of shorter length (to preserve the overall size), and then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;re-ran the measurements with 20, 50 and 100 columns using the FGDB and &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;shape &lt;/SPAN&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;methodologies above:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;20 cols:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;FGDBa 0 1240 4096 5336&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;FGDBg 16 1310 94 1420&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;FGDBs 16 1404 0 1420&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;shpA 0 2480 0 2480&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;shpB 0 1638 0 1638&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;shpC 0 2434 405 2839&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;shpD 0 2355 1202 3557&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;shpE 0 2464 188 2652&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;50 cols:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;FGDBa 15 2200 17628 19843&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;FGDBg 0 2090 31 2121&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;FGDBs 16 2105 16 2137&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;shpA 0 2574 0 2574&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;shpB 0 1638 0 1638&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;shpC 0 2399 736 3135&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;shpD 0 2577 6003 8580&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;shpE 0 2620 219 2839&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;100 cols:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;FGDBa 0 3819 61669 65488&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;FGDBg 0 3370 46 3416&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;FGDBs 16 3417 16 3494&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;shpA 0 2652 0 2652&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;shpB 0 1638 0 1638&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;shpC 0 2840 1014 3854&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;shpD 0 2844 24846 27690&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;shpE 0 2620 485 3105&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;Since the time progression on both FGBDa and shpD suggest a "big O &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;N-squared" &lt;/SPAN&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;algorithm &lt;/SPAN&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;issue (doubling the columns increases duration by &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;roughly four times), I re-wrote my shapefile findColByName function &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;to use a circular search algorithm (each search starts with the column&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;after the last found position), and then re-tested (methodology F):&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;10 cols:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;shpF 0 2299 447 2746&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;20 cols:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;shpF 0 2465 468 2933&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;50 cols:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;shpF 0 2780 808 3588&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;100 cols:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;shpF 0 2574 2028 4602&lt;/SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;In conclusion, it appears that the getter calls on attributes with the &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;FILEGDB API do have a significant performance cost (this is especially &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;true when there are a large number of attributes in the table). Fortunately&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;for your case, you have the option of recoding to delay the use of 'Get'&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;attribute accessors until they are actually necessary.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;I've recommended that a circular search algorithm be used in the &lt;/SPAN&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;getter&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;and setter functions, and that consideration be given to &lt;/SPAN&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;overloading the&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;Row accessors using&lt;/SPAN&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt; an integer radix (vice name) which &lt;/SPAN&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;should give uniform &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;access cost without regard to the attribute retrieval &lt;/SPAN&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;order.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2; font-family: Courier New;"&gt;- V&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 08 Aug 2011 17:38:40 GMT</pubDate>
      <guid>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311655#M517</guid>
      <dc:creator>VinceAngelo</dc:creator>
      <dc:date>2011-08-08T17:38:40Z</dc:date>
    </item>
    <item>
      <title>Re: Slow performance reading FGDB</title>
      <link>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311656#M518</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thank you very much for your repply!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The fact that the testing you have done is impressive. There are certain details that are noticed only with managing large volumes of data.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I look forward to seeing if implemented access to the attributes of a faster &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 11 Aug 2011 21:08:58 GMT</pubDate>
      <guid>https://community.esri.com/t5/file-geodatabase-api-questions/slow-performance-reading-fgdb/m-p/311656#M518</guid>
      <dc:creator>ahuarte</dc:creator>
      <dc:date>2011-08-11T21:08:58Z</dc:date>
    </item>
  </channel>
</rss>

