sql-server - SQL Server 2008 Varbinary(Max) 列 - 28Mb 图像创建 3.2Gb 数据库

标签 sql-server image

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

最佳答案

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

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

关于sql-server - SQL Server 2008 Varbinary(Max) 列 - 28Mb 图像创建 3.2Gb 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19084963/

相关文章:

css - 使用 css 媒体选择器时,视网膜显示器上是否同时加载了标准和高分辨率图像?

python - 如何在python docx模板(docxtpl)中显示图像? python

sql - 移动 SQL Server 数据库会降低性能

SQL:如何通过某些列的值将表中的 'split' 行?

sql-server - 如何从 ado.net 调用 SQL 函数

javascript - 寻找有关如何突出显示图像区域的建议

SQL DENSE_RANK 和 PARTITION BY

c# - 什么是将参数传递给 SQL,为什么我需要它?

image - 任何图像文件格式是否支持负 float ?

c# - 在 Metro 应用程序中以编程方式设置图像源,图像不会出现