如果对许多列使用不同的数据类型,我认为可能会有更好的表格。如果这些列切换到更好的数据类型,我希望设计一些测试来确定磁盘空间的回报。如何确定表在ASE 15.0中占用多少磁盘空间?
答案 0 :(得分:4)
使用sp_spaceused, table, 1
。它分别报告表和每个索引。保留data
使用的rowtotal
空间将为您提供实际行长度的一个值(不计算碎片,这取决于锁定方案和活动)。
使用sp_help table_name
。这将为您提供另一个值,即预期或平均行长度。使用提供的信息,使用列长度进行简单算术;然后估计它们将是你想要的数据类型更改。
请注意,可变长度列每个需要4个额外字节。
现在创建新表(甚至是临时的),使用相同的列,使用新的数据类型,然后重复(2)。这将确认您的估算。
sp_estspace
有不同的目的。
答案 1 :(得分:1)
1> sp_spaceused TableName
2> go
name rowtotal reserved data index_size unused
-------------------- ----------- --------------- --------------- --------------- ---------------
TableName 5530288 5975116 KB 5537552 KB 392292 KB 45272 KB
我不知道有什么可以让你按列分类。对表使用sp_help会为您提供所有列及其长度的列表。我认为这表明该列可以使用的存储量。
有些方法可以使用sp_estspace估算表大小,但我从未尝试过这些方法。