jpeg を取得し、それらを varbinary(MAX) データ型フィールドのバイト配列としてテーブルに挿入しています。ただし、mdf ファイルのサイズは、挿入するすべてのファイルの合計サイズの 3 倍から 4 倍大きくなっています。標準の C# コーディング手法を使用して、Web 応答を取得し、それをメモリストリームに変換しています。
byte[] result;
byte[] buffer = new byte[4096];
using (Stream responseStream = request.GetResponse().GetResponseStream())
{
using (MemoryStream memoryStream = new MemoryStream())
{
int count = 0;
do
{
count = responseStream.Read(buffer, 0, buffer.Length);
memoryStream.Write(buffer, 0, count);
} while (count != 0);
result = memoryStream.ToArray();
}
}
それでも、どういうわけか、512 MB の jpeg は、サイズが 2 GB を超える MDF を成長させてしまいます。テーブルに挿入する場所では、result.length を使用してこのフィールドの長さを定義しています。自動成長は 5% に設定されています。