2012-07-25 48 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