在将 BLOB (jpg) 从 SQL Server 2008 转换为文件系统上的文件时,是否有人遇到过任何问题?检索 blob 然后创建文件需要 5-8 秒
最终,我将存储文件路径并进行类似的快速查找,但是对于每个 jpeg 的初始命中,创建文件需要很长时间,我必须假设有一种方法可以使它更快,或者我只是这样做在 C# 中错误或效率低下。
这是我从数据库中获取它的方式:
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 是我从数据读取器获得的 byte[] 值。
不确定这是否有效。我见过人们走这条路,但不明白这是否是一种旧的方式,我发现了一种更优雅的语法方式,或者我的方式只是我发现的一种更优雅的方式:
fs = new FileStream(FilePath, FileMode.Create);
fs.Write(imageData, 0, imageData.Length);
fs.Close();
MimeType = image.MIMEType;
where imageData is again a byte[]
所以我想知道是否有人按照我的方式做到了,或者您通常使用第二种语法......在任何人遇到过的大型网站上,第二种与第一种相比是否有任何性能提升?
最终只是想弄清楚为什么 blob 需要这么长时间才能创建文件。