2013-09-30 64 views
2

這是我第一次嘗試將圖像存儲在我的數據庫中,而不是文件服務器,至今我很遺憾。我無法使用文件流,因爲我的主機不支持它,所以我使用varbinary(max)列。我正在跟蹤我插入的圖像大小,到目前爲止大約有28Mb,但數據庫在3.2Gb,這只是瘋狂。我更好地varbinary(XXXX)來減少這個 - 是SQL Server預留MAX的空間嗎?SQL Server 2008 Varbinary(Max)列 - 創建3.2Gb數據庫的28Mb圖像

使用MS SQL Server 2008的BTW

這裏是頂級表尺寸:

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

+0

我個人不會將SQL用於文件存儲。只需將元數據存儲在數據庫中,並使用文件系統來存儲實際文件。它只是不值得使用SQL,除非你有小千字節文件。 – jcwrequests

+0

600張圖片的平均圖像大小爲43Kb我的理解是Varbinary對於1MB以下的任何東西都可以,但我傾向於同意你的看法 - 這是一個試用版,到目前爲止我對它沒有那麼興奮 – Rob

+0

它讓我想起瑞士陸軍刀海報「只因你不能代表你應該」的單一責任主席海報。祝你好運。 – jcwrequests

回答

2

確保所有空間都由實際數據使用,而不是日誌文件。

收縮日誌文件只會刪除未使用的空間。爲了在收縮之前清除條目,您需要手動備份或截斷日誌(警告:如果您關心的是日誌鏈,這可能會破壞它)

相關問題