有没有办法知道我的数据库中的一行(在磁盘上)占用了多少空间?
我很想在SQL Server CE上看到它,但如果SQL Server 2008不能正常工作(我在两者中都存储了大致相同的数据)。
我问这个问题的原因是,我的SQL Server CE数据库中有一个Image列(在SQL 2008数据库中,它是varbinarymax ),我现在需要知道可以存储多少行,然后才能最大限度地释放设备上的内存。
发布于 2010-04-21 00:17:27
也许不是你想要的100%,但是如果你想知道一张图片的大小,只需这样做
SELECT [RaportID]
,DATALENGTH([RaportPlik]) AS 'FileSize'
,[RaportOpis]
,[RaportDataOd]
,[RaportDataDo]
FROM [Database]你需要自己做的任何其他额外的计算(如预测等)。
发布于 2010-04-21 00:14:07
对于每一行,varbinary(max)列本身可能包含多达2 2GB的数据。对于基于现有数据的估计使用,也许您可以使用DATALENGTH函数进行一些分析,以计算出一个典型的图像占用了多大的空间,并由此推断。
发布于 2010-04-21 00:09:43
你只能做出粗略的猜测--没有确切的答案来回答“在我的设备内存耗尽之前,我可以存储多少行”这个问题,因为你不能独占使用你的设备-其他程序也会占用资源,你只能知道当前有多少可用存储空间,而不是将来的某个时候。此外,您的图像可能是压缩的,因此会占用不同数量的RAM。
出于猜测的目的,图像的大小是行大小的一个很好的近似值;行结构的开销可以忽略不计。
https://stackoverflow.com/questions/2676626
复制相似问题