ファイル サーバーではなく DB に画像を保存しようとしたのはこれが初めてで、今のところ後悔しています。ホストがサポートしていないためファイルストリームを使用できないため、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
空間インデックスが原因で影響がある場合に備えて、Municiplity Table にも Geography Column があることにも言及する必要があります...私はこれを過去に何度も使用して問題はありませんでしたが、一度もありません1M+ レコードは通常 20k 未満