Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is there any way to find out how much diskspace a table in MSSQL uses? Or even better, how much diskspace a single row consumes?

share|improve this question
up vote 10 down vote accepted

In SQL Server Management Studio, right click on the Database and choose Reports|"Disk Usage By Tables".

Also, I don't know what version of SQL Server it was introduced in, but there is a sproc sp_spaceused that you can pass an object; For example:

sp_spaceused 'MyTable'
share|improve this answer
Thanks, that stored procedure is exactly what I need :) – Frode Lillerud May 2 '09 at 7:18
I used the same Stored Procedure, but called using Mitchel Sellers' script:… – Lazlow Aug 19 '09 at 22:38

For a table you can use sp_spaceused to determine the size of the table. However, any schema with variable length columns such as varchar/varbinary types will not have a fixed row size. Given that this describes most if not all real databases, you are really only going to be interested in an average row size which can be trivially calculated by dividing the size by the row count.

share|improve this answer

In the management studio, you can right click on the database and go to properties. It will have a size field that will tell you the size of the current database.

share|improve this answer

In SQL Server Management Studio, right-click on the table, select "Properties" and move to the "Storage" page.

share|improve this answer

Somewhat related - this script could be useful: Finding the biggest tables in a database

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.