2010-11-24 96 views
2

我们得到了UploadedFiles数据库表,其中存储了大量文件(当前为400k)。在数据库中存储大量文件

如果我们将实际文件数据(varbinary字段)移动到单独的表中,我们是否会获得任何性能优势?

+0

请问每个文件有多大? – gbn 2010-11-24 20:00:24

回答

3

您可以使用分区并将该字段放入不同的分区。以下是一些参考链接:

注意创建分区以优化性能时,将每个分区放在不同的物理磁盘上。

http://msdn.microsoft.com/en-us/library/ms345146%28SQL.90%29.aspx

http://databases.about.com/od/sqlserver/a/partitioning.htm


或存储在文件系统中的文件,并保持在一个varchar字段位置的参考。

+0

+1用于存储对文件位置的引用。这通常是最简单的解决方案。 – Matt 2010-11-24 22:58:21

1

如果你的SQL Server 2000/2005上,并没有FILESTREAM用,不要忘了关于创建单独的文件组和数据文件的能力。

配置用户文件组并将它们放置在与系统数据库对象分离的物理驱动器(或LUN)上,从而实现更好的性能。这也为您提供备份和恢复操作的更多灵活性。更多的信息在这里:

http://blogs.msdn.com/b/buckwoody/archive/2009/05/21/sql-server-best-practices-setting-a-default-filegroup.aspx