在SQL Server 2008中保存100000个文件(1MB文件)

本文关键字:文件 1MB 100000个 保存 SQL Server 2008 | 更新日期: 2023-09-27 18:00:08

我想用C#创建一个应用程序,将pdfdoc、image等文件保存在服务器上,我有SQL server 2008 Enterprise。

我可以每年在数据库中保存100'000个文件(每个文件大小为1MB)吗?

因此,我需要了解我的缺点,并且是数据库变得缓慢

在SQL Server 2008中保存100000个文件(1MB文件)

微软研究院有一篇非常好的论文,叫做To Blob或Not To Blob。

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

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

  • 如果图片或文档的大小通常超过1MB,则将它们存储在文件系统中会更高效(并且使用SQL Server 2008的FILESTREAM属性,它们仍然处于事务控制之下,并且是数据库的一部分)

  • 在这两者之间,根据你使用的情况,这有点悬而未决

对于文件组,请查看文件和文件组体系结构以了解简介。基本上,您可以从一开始就为大型数据结构创建具有独立文件组的数据库,也可以稍后添加其他文件组。让我们称之为LARGE_DATA

现在,只要您要创建一个需要存储VARCHAR(MAX)VARBINARY(MAX)列的新表,就可以为大数据指定以下文件组:

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

查看MSDN关于文件组的介绍,并与它一起玩吧!