2011-05-24 52 views
0

我有一张表保存数据快照。这些快照全部用'jan2010''april2011'标记。随着时间的推移,所有快照都会呈指数级增长,我想知道是否可以预测何时需要升级存储。如何查找从表中返回的数据大小

有什么办法来

select monthlysnapshot, sum(size) 
from tblclaims_liberty 
group by monthlysnapshot 
order by monthlysnapshot desc 

缺少什么我得到的数据的大小返回?有我可以调用的系统功能吗?

回答

3

EXEC注释sp_spaceused“表名”

这将返回一个结果集,它提供以下信息:

名称 - 中的行数 - 表

行的名称表

保留 - 表中总预留空间量

数据 - 空间量使用的数据表

Index_Size - 表

+0

使用这个我计算每个快照使用的空间,并能够预测,当我应该考虑扩大。谢谢。 :) – 2011-07-06 13:44:17

1

这是你在找什么?

C# Getting the size of the data returned from and SQL query

更改:

EXEC sp_spaceused 'tablename' 

如果你可以在你的代码,这样做,那么在C#(到任何郎您使用更改密码)

long size = 0; 
object o = new object(); 
using (Stream s = new MemoryStream()) { 
BinaryFormatter formatter = new BinaryFormatter(); 
formatter.Serialize(s, o); 
size = s.Length; 

代码复制自:How to get object size in memory?

+1

我认为标题和最终问题与提供的其他信息相矛盾。这更像是OP想知道某些数据的大小*存储*而不是*返回*。 – 2011-05-24 09:35:32

+0

那正是我的问题。我所有的数据都在一张表中。我想知道数据会为每个快照提供多少数据。 – 2011-05-24 12:32:45

+0

@Adam McC你可以在你的代码中做到这一点。如果你使用C#,那么看看我的编辑。 – Kashif 2011-05-25 12:12:00

0

我认为你可以将选定的数据为通过表格量usused空间 - 通过表的索引使用

未使用的空间量“select * into newtable from table”并获取新创建的表的大小。

相关问题