My company has recently exceeded our data storage cap (at 102% right now.. :/ ). A large portion of the data that pushed us over our limit was due to an import of records. The weird thing about this is that the records only had a couple of fields populated each out of the 200 total fields on the object.
What this tells me is that SalesForce holds the space for each field (since it knows the max-length of each field) rather than populating space only when the field is not null. Does anyone know if this is the case?
To reiterate, and perhaps present this question more clearly:
If a field has a max character count of 1,000 and only 250 of those characters are actually being used, does SalesForce count the total data storage consumed by that field as 250 or 1,000?
Salesforce uses a simplistic method for calculating storage usage. Most records use 2KB of space despite how many fields are actually used. There are a few exceptions to this rule.
See “What are the various record sizes?” on Salesforce for which objects take more or less space.
- Person Accounts – 4KB
- Campaigns – 8KB
- Campaign Members – 1KB
- Articles – 4KB
- Email Message – This is dependent upon the content of the messages, a 100kb email message takes 100kb of data storage space. Text only emails will take less than HTML due to only being the body text and not the html code and text version as well.
NOTE ABOUT PERSON ACCOUNTS
Person Accounts consume a record in both the Account and Contact
objects. Each record allocates 2KB, so each Person Account record will
require 4KB of storage space. As an example, 500,000 person accounts
will require 2GB (500,000 * 4KB) of storage. Images from Rich Text
Fields are stored in file storage area.
Update: Pricebooks, Pricebook Entries, Opportunity Line Items and Quote Line Items all appear to not count against storage. There may be a few other objects that fall into this category.