2010-04-20 22 views
3

有没有办法找出我的数据库中一行占用多少空间(在磁盘上)?找出数据库中一行所占用的存储量有多少

我很想看到它的SQL Server CE,但没有SQL Server 2008的工作原理(我在两个存储大约相同的数据)。

我问的原因是我有我的SQL Server CE数据库中的图像列(这是SQL 2008数据库中的varbinary [max]),我现在需要知道现在我可以存储很多行,我的设备上的内存。

回答

1

也许不是100%,你想要什么,但如果你想知道一个图像多少大小采取只是做

SELECT [RaportID] 
         ,DATALENGTH([RaportPlik]) AS 'FileSize' 
         ,[RaportOpis] 
         ,[RaportDataOd] 
         ,[RaportDataDo] 
FROM [Database] 

你自己需要做的任何其他附加计数(如预测等)。

+0

正是我在找的东西。感谢这个例子 – Vaccano 2010-04-20 16:32:29

0

你只能做粗略的估计 - 目前还没有确切答案的问题“多少行,我可以出内存我最大前存储设备上”既然你没有专用设备的 - 其他程序也占用资源,只能知道目前有多少存储空间可用,而不是将来的某个时间。此外,您的图像可能会被压缩,因此会占用不同数量的RAM。

对于猜测的目的,只是图像的大小是行大小的一个很好的近似值;行结构的开销可以忽略不计。

+0

该设备由我公司所有,并专用于我的应用程序。 – Vaccano 2010-04-20 16:29:31

+0

@Vaccano和你的图像完全相同的大小? – Will 2010-04-20 18:59:34

+0

不,但我采用了DATALENGTH方法并取得了平均值。 (他们几乎一样。) – Vaccano 2010-04-20 19:47:31

1

对于每一行,varbinary(max)列可能包含最多2GB的数据。对于基于现有数据的估计使用情况,也许您可​​以使用DATALENGTH函数进行一些分析,以确定您的图像中典型的图像占用的空间,并从中推断出来。

相关问题