C# 在SQL Server 2008中保存100000个文件(1MB文件)
我想用C语言创建一个应用程序来保存文件,比如C# 在SQL Server 2008中保存100000个文件(1MB文件),c#,database,sql-server-2008,C#,Database,Sql Server 2008,我想用C语言创建一个应用程序来保存文件,比如pdf,doc,服务器上的图像,我有SQL server 2008 Enterprise 我是否可以每年在数据库中保存100000个文件(每个文件大小为1MB) 因此,我需要了解数据库的缺点和速度是否变慢,Microsoft Research有一篇非常好的论文,名为 经过大量性能测试和分析,他们得出的结论如下: 如果图片或文档的大小通常小于256K,则将其存储在数据库的VARBINARY列中会更有效 如果图片或文档的大小通常超过1MB,则将其存储在文
pdf
,doc
,服务器上的图像,我有SQL server 2008 Enterprise
我是否可以每年在数据库中保存100000个文件(每个文件大小为1MB)
因此,我需要了解数据库的缺点和速度是否变慢,Microsoft Research有一篇非常好的论文,名为 经过大量性能测试和分析,他们得出的结论如下:
- 如果图片或文档的大小通常小于256K,则将其存储在数据库的
列中会更有效VARBINARY
- 如果图片或文档的大小通常超过1MB,则将其存储在文件系统中会更高效(使用SQL Server 2008的
属性,它们仍然处于事务控制之下,并且是数据库的一部分)FILESTREAM
- 在这两者之间,这取决于你的使用情况
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简介,并使用它 文件系统擅长保存文件,数据库擅长保存数据。从这里开始。从技术上讲,你可以这样做,但这并不一定意味着这是一个好主意……如果我必须将这些文件存储在数据库中,我可能会使用
FILESTREAM
,然后你会得到两个世界。主要的缺点是,管理访问更难-即,如果你想浏览、打开或复制一些文件。您必须创建自己的工具(文件管理器)。