如何确定 ASE 中表使用了多少磁盘空间
我有一个表,我认为如果它的许多列使用不同的数据类型可能会更好。我希望设计一些测试来确定如果将这些列切换到更好的数据类型,磁盘空间的回报。如何确定 ASE 15.0 中表占用了多少磁盘空间?
I have a table which I think might be better off if it uses different data types for many of the columns. I wish to design some tests to determine the pay off in disc space if these columns are switched to better data types. How can I determine how much disc space a table is taking up in ASE 15.0?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用
sp_spaceused,表,1
。这分别报告表和每个索引。除以rowtotal
使用的data
空间将为您提供一个实际行长度值(不包括碎片,碎片基于锁定方案和活动)。使用
sp_help table_name
。这将为您提供另一个值,即预期或平均行长度。使用提供的信息,对列长度进行简单的算术运算;然后估计您想要的数据类型更改将是什么。请注意,每个可变长度列需要 4 个额外字节。
现在创建具有相同列和新数据类型的新表(即使是临时表),然后重复 (2)。这将确认您的估计。
sp_estspace
具有不同的用途。Use
sp_spaceused, table, 1
. That reports the table and each index separately. DIviding thedata
space used by therowtotal
will give you one value for the actual row length (not counting fragmentation, which is based on the lock scheme and activity).Use
sp_help table_name
. That will give you another value , the intended or average row length. Using the info provided, do the simple arithmetic with the column lengths; then estimate what they will be re the Datatype changes you intend.Note the variable length columns require 4 additional bytes each.
Now create the new table (even temporarily), with the same columns, with the new Datatypes, and repeat (2). This will confirm your estimates.
sp_estspace
has a different purpose.不过,我不知道有什么可以为您提供按列细分的信息。对表使用 sp_help 确实会提供所有列及其长度的列表。我认为这表明该列可以使用的存储量。
有一些使用 sp_estspace 估计表大小的方法,但我从未尝试过这些。
I'm not aware of anything that will give you a breakdown by column though. Using sp_help against the table does give you a list of all the columns, and their Length. I think that indicates the amount of storage the column could use.
There are methods of estimating table size using sp_estspace, but I've never tried these.