我必须找到一个设计项决定为以下任务:

我有一个SQL服务器数据库,它包含一个表格的订单。PDF文件将上传的用户通过一个简单的文件上载从一个网页,并分配给一个单。没有多于一个文件的每个订单(也许没有文件,从未超过一个)。为此目的用户打开了一个网页,进入一个订单的数量,得到了显示和点击次数在上传一个按钮。所以我知道到哪了上载的文件。

现在我正在考虑两个选择要储存的文件在网服务器:

1)延长我的订单表通过varbinary(最大值)列并存储的PDF格式文档,直接进入二进制的领域。

2)保存的PDF文件,在一个特定的磁盘上的文件夹中,并给它一个独特的名称有关的订单(例如我的订单数量,这是一个主要关键数据库中,或GUID我可以存储在一个附加列顺序表)。也许我有储存的文件子文件夹中,一个每个月,和储存的文件夹的名字进入了行的数据库,以避免太多万文件的一个文件夹。

后PDF文件存储他们可以下载和观察的通过浏览器进入后有关的顺序号码。

我趋向于选择(1),因为数据管理似乎更容易对我有所有相关的数据在一个数据库。但是我有点害怕我可能会遇到业绩问题上的时间,因为我的数据库的规模将增长速度远远超过与解决方案(2)条。大约90%或甚至95%的总数据库的大小将由只能由这些储存的PDF文件。

这里是一些附加信息:

  • PDF文件将有大约100千字节每
  • 约1500订单/PDF文件,每月
  • Windows服务器2008年R2/IIS7.5
  • SQL服务器2008年SP1表达
  • 不是很确定有关硬件,我认为,一个四核Proc.4GB
  • 应用程序是写在ASP.NET web表单3.5sp1

(我知道我将达到4gb-限制的SQL Server表达版之后2年的数字上。但是,我们可以无视这里,要么删除旧的数据库中的数据或升级到较完整的许可证将一个可能的选择。)

我的问题是:什么是亲和反政府分子的选择和你有什么建议?也许有人有相似的任务和报告关于他的经验。

谢谢你提前回复!

相关:

图像存储在数据库-是啊或不?

有帮助吗?

解决方案

与SQL服务器2008年,当你有文件,大多是1MB或多个大小,文件流功能将建议。这是基于在发表的一篇论文由Microsoft研究叫 到BLOB或不BLOB 其进行分析的优点和缺点的储存blob在一个数据库,在很长-伟大的阅读!

对于文件的小于256K平均来说,保存他们在一个 VARBINARY(MAX) 列似乎是最合适的。

任何之间是有点折腾的,真的。

你说你只有一份PDF文件主要是围绕100K或>那些将储存非常漂亮的成SQL服务器表,没有问题。有一件事你也许想要考虑是具有一个单独的表格对该文件是与主要的事实表。这样,事实表将以更快的速度在使用,该文件没有的方式获得的其他数据。

其他提示

我还将创建一个单独表的文件,这样的搜索数据/关键领域为文件检索将更多的高速缓存'able.唯一的时候你的数据库将需要接触文件表期间插入或下载。

我建议对储存的文件在SQL。你是增加额外开销时检索文件。IIS是真正有效地提供文件,但有SQL的储存设施现在已经介绍了一个瓶颈,因为你现在有随从你的网服务器到SQL服务器和后获得的文件。

当你存储文件在网络服务器,你的过程可以确定适当的文件依据的标准已经列出,指为它和服务。文件管理系统,如Documentum和露天存放的文件在分享,这可以让你极大的灵活性方面的备份和冗余储存。

我持怀疑态度的存储大blob in SQL,假设sql页面尺寸是4k(关nut)..它已组建片段的整个文件在nK块时提供服务的文件回来的用户..我不确定情况是否如此或者不是。

我们遇到类似的情况,尽管在原则上只。我们需要一种方法,通过它的文件存储对SharePoint可通过链接网页上。因为一切都是基于项目的一个独特的项目数量的解决办法是实现一个共同名公约的文件。s网页创建服务器的端,该链接是动态的建立。代码需要的基本路径对SharePoint服务器然后添加项目数量和具体情况的文件。

例如:

[SharePoint Base Path][Project Numbe][Project Document Name]
[http://mysharepoint.mycompany.com/213990/213990_PC.pdf]
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top