I have one database that has a bigger size than expected, how can I query it to retrieve the fields that take more space.
let’s say I have 2 only tables
Table1.FieldOne
Table1.FieldTwo
Table2.FieldOne
Table2.FieldTwo
Let’s say 99.9% of DB data is in Table2.FieldTwo, how do I query the db?
Of course I have many many tables.
The db is on sqlserver 2000
I can’t think of an easy way to do this off the top of my head.
One way would be do dynamically generate the TSQL to list the total size of each column in each table which could be done using something like this:
Which would return e.g.
However, my concern is this is likely to be a pretty hefty query to run so I’d think carefully about it first. If there are no better suggestions and you try this, it might be worth restricting it to only look at a subset of columns – i.e. ignore any columns that you know from the start are small in size, focus on the columns you know are likely to be the bigger ones.
The ideal solution would be if this information was already held in system tables/accessible via DMVs somehow – unfortunately I don’t know if it is, I’ve never come across it if it is available.