逐列数据大小?

时间:2015-02-27 11:47:18

标签: sql sql-server

我想返回SQL Server 2008表中单个列的数据大小。我知道:

sp_spaceused 'mySchema.myTable'

会给我总表的数据大小,但有没有办法返回表中单个列的数据大小?

1 个答案:

答案 0 :(得分:3)

确实没有用于列"的空间概念,因为数据是由记录而不是列存储的。实际上,如果删除列,则可能无法恢复空间。

您可以使用datalength()(记录为here)获取列值所占用的页面空间。

您可以通过执行以下操作获取表的值:

select sum(data_length(col))
from table t;

请注意,这不包括NULL标志和索引之类的辅助存储。