[GIS] the maximum attachment file size in Esri file and ArcSDE geodatabases

arcgis-10.2attachmentsfile-geodatabase

I am trying to figure out the maximum size of attachment in a file and ArcSDE geodatabases while working on a project specification details. I am not able to find these figures documented by Esri anywhere.

Running own tests, it seems as a file geodatabase has a limit of ca 600MB per file that is being attached. When trying to attach everything that is larger than 600MB, I am getting an error (where Points3D is the name of the feature class I am trying to attach a file to).

enter image description here

Just to see whether it is a file geodatabase only limit, I have run some tests with a SQL Server enterprise geodatabase and here I am getting stuck at somewhere between 700 and 800MB and either get the same error message (except that instead of the feature class name I have my SQL Server database filegroup name) or have ArcMap unexpectadly crashed and closed.

What is the official/documented maximum file size limit that one can upload to an Esri file geodatabase? I also welcome comments if someone has succeeded uploading anything larger than 1GB to a geodatabase as an attachment.

Best Answer

In theory, there are no limits, except those of the operating system. The 600-700mb threshold is likely due to the heap size of a 32-bit application (two copies of the object being saved are needed, so 1gb is out of the realm of possibility).

I wouldn't ever store more than 20-25mb in a LOB type, just because it is so stunningly inefficient. It's far easier to store a file system path or other URI in a string field, and let applications access the data directly.

UPDATE: I have word from a trusted source that 64-bit clients can load "far more" than 1Gb into BLOB columns "if the memory of the application hasn't been fragmented" (allowing the app to malloc that much contiguous RAM [twice over]). It still remains unwise to stuff binary data streams into a database when they can be accessed much more easily from a filesystem (especially when 32-bit clients would be unable to retrieve these large BLOBs).

Related Question