I'm wondering that which you do when creating a new application when it comes to calculating database size.

E.g. I'm likely to launch an internet site, and i'm getting a difficult time calculating how big I possibly could expect my database to develop. I do not require that you let me know how big my database is going to be, but Let me determine if you will find general concepts in calculating this.

E.g. When Shaun developed StackOverflow, he (most probably) guesstimated his database size and growth.

My dilemma is that i'm taking a located solution for my web application (its about cost at this time), and ideally don't wish to shoot myself within the feet by not buying enough SQL Server space (you pay reasonably limited with this).

For those who have a database schema, sizing is fairly straightforward ... it is simply believed rows * avg row size for every table * some factor for indexes * another factor for overhead. Because of the absurdly low cost of storage nowadays, sizing frequently is not an issue unless of course you want to possess a high traffic site (or are building an application for any large enterprise).

For my very own sizing exercises, I have always produced an stand out spreadsheet listing:

  • col 1: each table which will grow
  • col 2: believed column size in bytes
  • col 3: believed # of rows (each year or max, based on application)
  • col 4: index factor (I usually set this to two)
  • col 5: overhead factor (I usually set this to at least one.2)
  • col 6: total column (col 2 X 3 X 4 X 5)

The sum of the column 5, as well as the initial size your database without growth tables, is the size estimate. You will get a lot more scientific, but this really is my fast and dirty way.

The price of calculating will probably be bigger than the price of the storage

Most hosting companies sell capacity through the ammount used in the finish of every month, so just turn it on


  • the number of site visitors daily, V
  • the number of records of every type is going to be produced per visit, N1, N2, N3...
  • how big each record type, S1, S2, S3...

EDIT: didn't remember index factor that your good guideline is 2 occasions

Total growth daily = 2* V * (N1*S1 + N2*S2 + N3*S3 + ...)

My rules-of-thumb to follow along with are

  • the number of customers will i expect?
  • what content would they publish?
  • how large is really a user record?
  • how large is each content item a person can also add?
  • just how much will I be adding?
  • how lengthy will individuals content products live? forever? just a couple of days?

Multiply the consumer record size occasions the amount of customers add the amount of customers occasions this content item size multiply by two (for any convenient fudge factor).