2

这是我第一次尝试将图像存储在我的数据库而不是文件服务器中,到目前为止我很后悔。我不能使用文件流,因为我的主机不支持它,所以我使用的是 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

4

1 回答 1

2

确保所有空间都被实际数据使用,而不是日志文件。

缩小日志文件只会删除未使用的空间。为了在收缩之前清除条目,您需要事先备份或截断日志(警告:如果您完全关心您的日志链,这可能会破坏它)

于 2013-09-30T11:20:37.943 回答