5

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

有几件事对我们来说并不完全清楚:

  1. FILESTREAM 可以或不能将其数据存储在非本地连接的驱动器上。我们已经有一个带有 RAID 10(1.5TB 驱动器)的文件服务器。此服务器现在存储所有文档,我们是否必须将这些驱动器移动到 SQL Server 以用于 FILESTREAM?这将是一颗难以忍受的子弹,因为该服务器还兼作应用服务器(一台物理服务器上的两个 VM)。

  2. FILETABLE 存储有关文件的通用元数据,但它的全文部分存储在哪里以允许搜索像 doc/docx 这样的文件?这是分开的吗?你可以自由地添加条件来搜索吗?如果是这样,任何澄清的链接将不胜感激。

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

先感谢您

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

总之,我们不会使用 FILESTREAM,因为这将是一种巨大的热潮来适应投资。

编辑2:

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

更新到 #2 - 这是单独的,但 Bob 再次举办了一场精彩的网络研讨会来解释这一点:http ://channel9.msdn.com/Events/TechEd/Europe/2012/DBI411

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

4

1 回答 1

3

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

文件表的搜索是通过MSDN上记录的 containstable 函数完成的,搜索条件使用与 FULLTEXT 搜索 AFAIK 相同的语法。

出于所有意图和目的,FileTable 是一个典型的表,因此可以连接、搜索或其他任何方式。唯一的事情是您必须使用 sql server 的某些功能才能将 FILESTREAM guid 更改为更有用的东西,例如文件路径。

于 2012-09-14T15:35:50.507 回答