【问题标题】:Upload image to SQL Server 2008将图像上传到 SQL Server 2008
【发布时间】:2011-05-04 13:41:58
【问题描述】:

我看到 SQL Server 2008 有一个图像字段类型,我正在寻找使用 VS 2010 FileUpload 控件 (c#) 让用户在我们的数据库上的个人资料旁边加载一个徽标,谁能给我一个入门方法这样做?

再次感谢

【问题讨论】:

  • 自 SQL Server 2005 起,IMAGE 数据类型已被弃用 - 请改用 VARBINARY(MAX)
  • 酷,最好只保存保存图像的路径还是保存图像本身?
  • 为您在评论中提出的问题添加了答案 - 一个很长的问题!在这里也经常被问到。希望有帮助!

标签: sql image visual-studio-2010 sql-server-2008


【解决方案1】:

Microsoft Research 有一篇非常好的论文,名为 To Blob or Not To Blob,其中详细讨论了是否将实际数据存储在数据库表中,或者只是磁盘上文件的路径。

他们经过大量的性能测试和分析后得出的结论是:

  • 如果您的图片或文档的大小通常低于 256K,则将它们存储在数据库的 VARBINARY 列中会更有效

  • 1234563 /p>
  • 在这两者之间,根据你的使用情况有点折腾

如果您决定将图片放入 SQL Server 表中,我强烈建议您使用单独的表来存储这些图片 - 不要将员工照片存储在员工表中 - 将它们保存在单独的表中。这样一来,Employee 表就可以保持精简、平均和非常高效,假设您并不总是需要选择员工照片作为查询的一部分。

对于文件组,请查看 Files and Filegroup Architecture 了解简介。基本上,您可以从一开始就为大型数据结构创建带有单独文件组的数据库,或者稍后添加一个额外的文件组。我们称之为“LARGE_DATA”。

现在,每当您要创建一个需要存储 VARCHAR(MAX) 或 VARBINARY(MAX) 列的新表时,您都可以为大数据指定此文件组:

 CREATE TABLE dbo.YourTable
     (....... define the fields here ......)
     ON Data                   -- the basic "Data" filegroup for the regular data
     TEXTIMAGE_ON LARGE_DATA   -- the filegroup for large chunks of data

查看有关文件组的 MSDN 介绍,并尝试使用它!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    相关资源
    最近更新 更多