BLOB (jpg) を SQL Server 2008 からファイル システム上のファイルに変換するときに問題が発生した人はいますか? BLOB が取得されてからファイルが作成されるまでに 5 ~ 8 秒以上かかります
最終的にはファイルパスを保存し、そのような簡単なルックアップを行いますが、jpeg ごとの最初のヒットについては、ファイルの作成に長い時間がかかり、ファイルを高速化する方法があると想定する必要があります。 C# では間違っているか、非効率的な方法です。
DBから取得する方法は次のとおりです。
memberPhoto.PhotoBinary = (byte[])reader.GetValue(ordinals[(int)Enums.MemberPhotoColumn.PhotoBinary])
それを基にファイルを作成する方法は次のとおりです。
using (FileStream file = File.Create(photoPhysicalFilepath))
{
BinaryWriter writer = new BinaryWriter(file);
writer.Write(photoBinary);
writer.Flush();
}
return relativePhotoFilePath;
photoBinary は、datareader から取得した byte[] 値です。
これが効率的かどうかはわかりません。人々がこのルートをたどるのを見てきましたが、これが古い方法であり、構文的によりエレガントな方法を見つけたのか、それとも私の方法が私が見つけたよりエレガントな方法なのかわかりません。
fs = new FileStream(FilePath, FileMode.Create);
fs.Write(imageData, 0, imageData.Length);
fs.Close();
MimeType = image.MIMEType;
where imageData is again a byte[]
それで、誰かが私のやり方でそれをやったのか、それとも通常は2番目の構文を使用しているのでしょうか...誰かが遭遇した大規模なWebサイトで、2番目と最初の構文からパフォーマンスの向上はありましたか?
最終的には、ブロブからファイルへの作成に時間がかかる理由を理解しようとしています。