>very nice little analysis! but what do you do with it?
As per Tamar's comment - the goal is to determine which fields are wasting space in several contexts:
- Within the field, because too much space has been set aside, this typically applies to character fields.
- Fields that are not used very often, if 90% of a particular column is empty, I would recommend a separate table.
- Range-of-values, if a field has a range of values 3,000,176 to 3,000,987 and you (subsequently) discover that the values never fall below 3,000,000 or go above 3,000,999 then the 3 million is superfluous. The field can be shortened considerably. For small tables this is not probably worth the effort. Also in the range-of-values for text fields, it can be worth doing a SQL Select Distinct, to determine whether your 4 million rows of a 50 character field, only contain few hundred thousand variations. In this case the field should be normalized out into a child table. Range-of-values applies pretty much to all data types even Boolean.
- Etc.
censored.