最近,我们的团队正在研究 FILESTREAM 以扩展我们专有应用程序的功能。这个应用程序的主要目的是管理我们制造的所有零件的各种 PDF、图像和文档。我们的 ASP 应用程序使用一些第三方工具来允许查看这些文件。我们目前在 Fileserver 上有 980GB 的数据。我们在 SQL Server 中有大约 200GB 的二进制数据,我们想要提取这些数据,因为它表现不佳,因此 FILESTREAM 似乎是对两个主要数据存储/访问问题的一个很好的折衷方案。
有几件事对我们来说并不完全清楚:
FILESTREAM 可以或不能将其数据存储在非本地连接的驱动器上。我们已经有一个带有 RAID 10(1.5TB 驱动器)的文件服务器。此服务器现在存储所有文档,我们是否必须将这些驱动器移动到 SQL Server 以用于 FILESTREAM?这将是一颗难以忍受的子弹,因为该服务器还兼作应用服务器(一台物理服务器上的两个 VM)。
FILETABLE 存储有关文件的通用元数据,但它的全文部分存储在哪里以允许搜索像 doc/docx 这样的文件?这是分开的吗?你可以自由地添加条件来搜索吗?如果是这样,任何澄清的链接将不胜感激。
可以使用外键在另一个表中引用 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),这需要对我们的旧应用程序进行很少的更改。这对开发团队来说是一个巨大的结果。