2012-07-25 53 views
5

最近我们的团队正在研究FILESTREAM以扩展我们专有应用程序的功能。这个应用程序的主要目的是管理各种PDFS,图像和文件,我们制造的所有部分。我们的ASP应用程序使用一些第三方工具来允许查看这些文件。我们目前在文件服务器上有980GB的数据。我们在SQL Server中有大约200GB的二进制数据,因为它不能很好地执行,因此FILESTREAM似乎是对两个主要数据存储/访问问题的妥协。FILESTREAM/FILETABLE实施说明

有几件事情并不完全清楚地告诉我们:

  1. FILESTREAM可以或不可以它的数据存储不是本地连接的驱动器上。我们已经有一个带有RAID 10的文件服务器(1.5TB驱动器)。此服务器现在存储所有文档,我们是否必须将这些驱动器移至SQL Server for FILESTREAM?这将是一个棘手的问题,因为服务器也是应用服务器的两倍(一台物理服务器上有两台虚拟机)。

  2. FILETABLE存储关于这些文件的公共元数据,但它的全文部分存储在哪里,以允许搜索doc/docx这样的文件?这是单独的吗?你能够自由添加标准来搜索吗?如果是的话,任何明确的链接将不胜感激。

  3. 可以使用外键在另一个表中引用FILETABLE吗?

预先感谢您

编辑:对于那些有这些问题,这个网络视频覆盖了一切,并解释到2012年,从2008年FILESTREAM方面更和cavets考虑(我会认真代表他,如果我可以):http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2270

总而言之,我们不会使用FILESTREAM,因为它将成为适应投资的巨大热潮。

编辑2:

更新#1 - 除了FILESTREAM仔细评估的FileTable后,我们得到了一个成功的组合。我们必须将这些文件移动到新的服务器上(因为它们在同一个虚拟机上,所以不会感到痛苦)。老实说,花了更多时间编写一个提取工具来将SQL中的二进制数据转储到文件系统。

更新到#2 - 这是独立的,但再次鲍勃有一个优秀的网络研讨会说明这一点:http://channel9.msdn.com/Events/TechEd/Europe/2012/DBI411

更新至#3 - 使用TFT继承我们回收的文档表格,我们有(减去巨大的二进制块),这我们的传统应用程序只需要很少的更改。这对开发团队来说是一个巨大的结果。

回答

3

FileTables中存储文件的位置必须是本地的,或者至少必须在SQL Server上显示为本地,所以聪明的SAN驱动程序可能会欺骗它。由于FileTables的东西是建立在FILESTREAM的东西上,所以我认为限制是一样的。

搜索filetables是通过记录的containstable函数完成的on MSDN搜索标准使用与FULLTEXT搜索AFAIK相同的语法。

对于所有的意图和目的,FileTable是一个典型的表,因此可以连接,搜索或任何其他。唯一的问题是你必须使用sql server的某些功能才能将FILESTREAM guid更改为更有用的文件路径。

+0

现货。由于我们使用实体框架,所以确实遇到了一个小问题。我们采用了一个软键(如没有FK约束)到stream_id。 EF设计师完全忽略了FileTables。我们在我们的主要项目中制作了一个小型ADO.Net项目,用于上传/下载文档。 – jjhayter 2012-09-16 03:56:28