1

I have a polygon shapefile of about 12,000 features that I joined a CSV attribute table to using 'Join attributes by field value' in QGIS 3.2.1

The .dbf file size before the join = 5.6 MB

The .dbf file size after the join = 4.4 GB

The size of the CSV attribute table = 49 MB

Why is the .dbf file size so large after the join? Is there anything I can do about this?

  • dBase is a format from the early 80s. It is limited to 2.1gb. There may be something quirky about the way you calculate "size". – Vince Feb 1 at 22:28
  • how many and what type of attribute are you joining? – Ian Turton Feb 2 at 9:45
  • 1
    @IanTurton I am trying to joining property records info (such as owner, address, land use, assessed value, etc) to tax parcel polygons. There are about 150 columns in the property records CSV. Many of the cells contain numbers, a few contain text, and the rest are blank. Could the problem be that once I join the file to the parcel polygons, the blank cells are being assigned values? What are your thoughts? – csft306 Feb 2 at 14:44
  • Please Edit the question to contain this information. The file size is not changed by joining, but the reported size increases to include the joined fields. dBase uses a fixed width format and doesn't support NULLs, so each joined column is increasing the virtual width of the table by the maximum storage width of that column. – Vince Feb 3 at 14:37
  • @Vince, technically dBase files can be much larger than 2 GB. from gdal.org/drv_shapefile.html Attributes: The dbf format does not have any offsets in it, so it can be arbitrarily large. archive.sap.com/documents/docs/DOC-39207 documents an extension to use huge .dbf files When using Advantage the file size is limited by the operating system and available disk space. When using one of the latest file systems (i.e. NTFS, NSS) the file limit size limit is in Exabytes ( 1EB = 1 billion GB). – user30184 Feb 3 at 20:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.