FILESTREAM / FILETABLE实施说明

时间:2012-07-25 07:23:19

标签: sql filestream filetable

最近,我们的团队正在研究FILESTREAM以扩展我们专有应用程序的功能。此应用程序的主要目的是管理我们制造的所有零件的各种PDFS,图像和文档。我们的ASP应用程序使用一些第三方工具来允许查看这些文件。我们目前在Fileserver上有980GB的数据。我们在SQL Server中有大约200GB的二进制数据,因为它不能很好地提取,所以我们想要提取它们因此,FILESTREAM似乎是对两个主要数据存储/访问问题的良好折衷。

我们并不完全清楚一些事情:

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

  2. FILETABLE存储有关文件的公共元数据,但存储的全文部分在哪里,以便搜索doc / docx等文件?这是分开的吗?您是否可以自由添加标准来搜索?如果是这样,任何澄清的链接都将受到赞赏。

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

  4. 提前谢谢

    编辑:对于那些有这些问题的人来说,这个网络视频涵盖了从2008年到2012年解释文件流的所有内容以及需要考虑的问题(如果可能,我会认真地回答他):http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2270

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

    编辑2:

    更新到#1 - 除了FILESTREAM之外,仔细评估了FileTable后,我们获得了一个获胜组合。我们确实必须将文件移到新服务器上(因为它们位于同一个VM上并不痛苦)。老实说,我需要花更多的时间编写一个提取工具,将SQL中的二进制数据转储到文件系统中。 / p>

    更新到#2 - 这是分开的,但鲍勃再次有一个很好的网络研讨会解释这个:http://channel9.msdn.com/Events/TechEd/Europe/2012/DBI411

    更新到#3 - 使用TFT继承我们回收了我们拥有的Docs表(减去巨大的二进制blob),这对我们的遗留应用程序只需要很少的更改。对于开发团队来说,这是一个巨大的结果。

1 个答案:

答案 0 :(得分:3)

文件存储在FileTables中的位置必须是本地的,或者至少必须在SQL Server中显示为本地,因此聪明的san驱动程序可能会欺骗它。由于FileTables的东西建立在FILESTREAM的东西上,我想这些限制是相同的。

通过containsstable函数搜索文件表,该函数记录在案on MSDN,搜索条件使用与FULLTEXT搜索AFAIK相同的语法。

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