Sql server SQL Server 2008 Varbinary(最大)列-28Mb图像创建3.2Gb数据库
这是我第一次尝试将图像存储在数据库中而不是文件服务器中,我对此感到遗憾。我不能使用filestream,因为我的主机不支持它,所以我使用的是varbinary(max)列。我一直在跟踪我插入的图像大小,到目前为止大约有28Mb,但数据库的容量是3.2Gb,这真是太疯狂了。我是否最好使用varbinary(XXXX)来减少这一点-SQL Server是否为最大值保留了空间 使用MS SQL Server 2008 btw 以下是最主要的桌子尺寸:Sql server SQL Server 2008 Varbinary(最大)列-28Mb图像创建3.2Gb数据库,sql-server,image,Sql Server,Image,这是我第一次尝试将图像存储在数据库中而不是文件服务器中,我对此感到遗憾。我不能使用filestream,因为我的主机不支持它,所以我使用的是varbinary(max)列。我一直在跟踪我插入的图像大小,到目前为止大约有28Mb,但数据库的容量是3.2Gb,这真是太疯狂了。我是否最好使用varbinary(XXXX)来减少这一点-SQL Server是否为最大值保留了空间 使用MS SQL Server 2008 btw 以下是最主要的桌子尺寸: TableName RowCounts T
TableName RowCounts TotalSpaceKB UsedSpaceKB UnusedSpaceKB
Municipality 1028316 64264 64232 32
Image 665 33616 33408 208
User 320 248 224 24
SettingUser 5910 264 160 104
Region 1418 136 136 0
ImageUser 665 56 56 0
ConversationItem 164 56 56 0
Setting 316 48 48 0
Culture 378 40 40 0
UserTrack 442 40 40 0
Numbers 1000 32 32 0
Country 240 32 32 0
Conversation 52 32 32 0
CountryIp 0 88 32 56
ReportUser 0 16 16 0
ConversationItemImage 0 16 16 0
以下是exec sp_spaceused的结果:
database_size unallocated space
3268.88 MB 0.84 MB
reserved data index_size unused
359592 KB 291744 KB 66600 KB 1248 KB
我可能还应该提到,市政表上也有一个地理栏,以防由于空间索引而产生任何影响。。。我在过去使用过很多次,没有任何问题,但我从未有过1M+记录,通常小于20k,请确保所有空间都被实际数据使用,而不是日志文件
缩小日志文件只会删除未使用的空间。为了在收缩日志之前清除条目,您需要先备份或截断日志(警告:如果您关心日志链,这可能会破坏它)我个人不会将SQL用于文件存储。只需将元数据存储在数据库中,并使用文件系统存储实际文件。除非你有小的比如说KB的文件,否则使用SQL是不值得的。600多张图片的平均图片大小是43Kb,我知道Varbinary对于1mb以下的任何东西都是可以的,但我倾向于同意你的看法-这是一次尝试,到目前为止我对它没有那么兴奋。这让我想到了单一的责任主体海报瑞士军刀海报上写着“仅仅因为你能,并不意味着你应该”。祝你好运。我有一个很好的理由尝试使用数据库-图像是一个敏感的性质,使用数据库减少了从我的托管帐户遇到他们的机会。。。我很清楚在这个问题上有两种观点-问题不是我是否应该这样做…@Rob出于好奇,你的日志文件占用了多少空间?