这是我第一次尝试将图像存储在我的数据库而不是文件服务器中,到目前为止我很后悔。我不能使用文件流,因为我的主机不支持它,所以我使用的是 varbinary(max) 列。我正在跟踪我插入的图像大小,到目前为止大约有 28Mb,但数据库是 3.2Gb,这简直太疯狂了。我最好使用 varbinary(XXXX) 来减少这种情况 - SQL Server 是否为 MAX 保留空间?
顺便说一句,使用 MS SQL Server 2008
这是顶级表格尺寸:
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