2010-07-22 77 views
1

我有一张表,如果它对许多列使用不同的数据类型,我认为可能会更好。如果这些列切换到更好的数据类型,我希望设计一些测试来确定光盘空间的收益。我如何确定在ASE 15.0中占用了多少磁盘空间?如何确定一个表在ASE中使用多少磁盘空间

回答

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估计表大小的方法,但我从来没有尝试过这些。

+0

并临时表? – 2013-11-11 13:49:32

4
  1. 使用sp_spaceused, table, 1。它分别报告表格和每个索引。对rowtotal使用的data空间进行分区将为您提供实际行长度的一个值(不计算基于锁定方案和活动的碎片)。使用sp_help table_name。这会给你另一个值,即预期的或平均的行长。使用提供的信息,使用列长度进行简单的算术运算;然后估计他们将重新设定您想要的数据类型更改。

  2. 请注意,可变长度列每个需要4个附加字节。

    • 如果某列是可空的,则它将存储为Var Len。
  3. 现在用新的数据类型创建新表(甚至是暂时的),使用相同的列,并重复(2)。这将确认你的估计。

  4. sp_estspace有不同的目的。

相关问题