C# 如何优化从数据库中检索图像?

C# 如何优化从数据库中检索图像?,c#,asp.net,C#,Asp.net,我正在从数据库检索图像并使用Datalist显示,但图像加载时间很长,因此需要帮助对其进行优化。这是我的密码: public byte[] GetPicture(string Id, string state) { byte[] picData = null; try { if (con.State == ConnectionState.Closed) this.openConnection(); strGetIm

我正在从数据库检索图像并使用Datalist显示,但图像加载时间很长,因此需要帮助对其进行优化。这是我的密码:

public byte[] GetPicture(string Id, string state)
{
    byte[] picData = null;

    try
    {
        if (con.State == ConnectionState.Closed)
            this.openConnection();
        strGetImage = string.Format(strGetImage, Id);
        OleDbCommand oledbCommand = new OleDbCommand(strGetImage, con);
        picData = (byte[])(oledbCommand.ExecuteScalar());

               }
    catch (Exception)
    {
    }
    finally
    {
        con.Close();
    }
    return picData;
  }

您可以将图像保存在驱动器上的某个本地文件夹中,然后将其路径保存在数据库中。当您要检索时,可以从DB获取路径并从该路径读取图像文件

byte[] img = Files.readAllBytes(Path);

我猜图像不会改变,因此添加缓存将为您节省到数据库的往返。或者将图像保存在磁盘上而不是数据库中也会有帮助。

伙计们,你可以试着帮助他们,或者至少发表评论来改进问题。图像的大小是多少?这是活的还是发展的?@RobbieDee:-Thnx Buddy。。。它的实时数据库和图像大小通常为10-20KB。。。但是要显示的图像数量是60,代码看起来相当标准,所以我怀疑问题出在其他地方。DB服务器上的负载是什么样的?你知道你有多少并发用户吗?您可能希望与DBA讨论隔离级别,因为默认情况下,即使是select也可能导致DB锁定。该网站尚未上线,但将在一天左右上线,因此现在DB上的负载非常少。。。