2

ファイル サーバーではなく 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 未満

4

1 に答える 1

2

そのすべてのスペースが、ログ ファイルではなく、実際のデータによって使用されていることを確認してください。

ログ ファイルを縮小すると、未使用の領域のみが削除されます。エントリを圧縮する前にクリアするには、事前にログをバックアップまたは切り詰める必要があります (警告: ログ チェーンを気にする場合、ログ チェーンが壊れる可能性があります)。

于 2013-09-30T11:20:37.943 に答える