C# 从SQL Server Blob创建映像的速度非常慢

C# 从SQL Server Blob创建映像的速度非常慢,c#,sql-server-2008,C#,Sql Server 2008,在将BLOB(jpg)从SQL Server 2008转换为文件系统上的文件时,是否有人遇到过任何问题?检索blob然后创建文件需要5-8秒以上的时间 最终,我将存储文件路径,并像那样快速查找,但对于每个jpeg的初始命中率,创建文件需要很长时间,我必须假设有一种方法可以加快速度,或者我只是在C#中做得不对或效率低下 下面是我如何从数据库中获取它的: memberPhoto.PhotoBinary = (byte[])reader.GetValue(ordinals[(int)Enums.Mem

在将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是我从datareader获得的字节[]值

不确定这是否有效。我见过有人走这条路,但不明白这是一种古老的方式,我找到了一种更优雅的语法方式,还是我的方式只是一种更优雅的方式:

                 fs = new FileStream(FilePath, FileMode.Create);

                    fs.Write(imageData, 0, imageData.Length);
                    fs.Close();

                    MimeType = image.MIMEType;

where imageData is again a byte[]
所以我想知道是否有人按照我的方式来做,或者你通常会使用第二种语法……在一个大型网站上,有人遇到过第二种语法与第一种语法相比,性能有什么提高吗


最终,我只是想弄明白为什么创建blob文件要花这么长时间。

虽然使用SQL blob会付出代价,但它不应该那么大。然而,由于您没有发布任何来源,它可能是任何东西。我将在几天后发布来源。。。