有没有办法找出我的数据库中一行占用多少空间(在磁盘上)?
我很想看到SQL Server CE,但SQL Server 2008无法运行(我在两者中都存储了相同的数据)。
我问的原因是我的SQL Server CE数据库中有一个Image列(它是SQL 2008数据库中的varbinary [max]),我现在需要知道在我最大化之前我可以存储的很多行我设备上的内存。
答案 0 :(得分:1)
varbinary(max)列可能每行最多包含2GB的数据。对于基于现有数据的估计使用情况,也许您可以使用DATALENGTH函数进行一些分析,以计算出典型的图像占用的空间,并从那里进行推断。
答案 1 :(得分:1)
也许不是100%你想要的,但如果你想知道Image只需做多少大小
SELECT [RaportID]
,DATALENGTH([RaportPlik]) AS 'FileSize'
,[RaportOpis]
,[RaportDataOd]
,[RaportDataDo]
FROM [Database]
您需要自己做的任何其他计算(如预测等)。
答案 2 :(得分:0)
你只能做出粗略的猜测 - 对于“ 我可以存储多少行,然后我在设备上最大化内存 ”这个问题没有确切的答案您没有专门使用您的设备 - 其他程序也会占用资源,您只能知道目前有多少存储空间,而不是将来的某个时间。此外,您的图像可能已被压缩,因此需要不同数量的RAM。
出于猜测的目的,简单地说图像的大小是行大小的良好近似值;行结构的开销可以忽略不计。