討論並比較可用於將檔案和文件儲存在 SQL Server 中的選項。
將檔案儲存在資料庫中 - 優點和期望
大部分的企業數據本質上是非結構化的,通常儲存為文件系統中的檔案和檔。 大部分的數據是由透過 Windows API 存取檔案的應用程式所產生、管理和取用。 企業通常會將此數據保留在文件系統中,同時將檔案的相關元數據儲存在關係資料庫中。
將非結構化數據整合到關係資料庫可提供顯著的優點。 這些優點包括下列各項:
整合式記憶體和數據管理功能,例如備份。
透過數據和元數據進行全文搜索和語意搜尋等整合式服務。
簡化非結構化數據的管理和政策管理。
不過,在大多數情況下,將非結構化數據儲存在關係資料庫中並不方便。 先前無法在關係型系統上執行現有的 Windows 應用程式。 重寫已建立的應用程式(例如 Microsoft Word 或 Adobe Reader),使其在關係型資料庫 API 上執行並不實際。 這些應用程式只會預期數據可透過 Windows API 存取。 換句話說,預期包括下列各項:
Windows 應用程式並不知道資料庫交易,而且不需要它們。
Windows 應用程式需要與檔案系統 API 的相容性,以取得檔案和目錄數據。
FILESTREAM
SQL Server 已經有 FILESTREAM 功能,可提供高效儲存、管理和串流儲存為文件系統上檔案的非結構化數據。 不過,FILESTREAM 解決方案需要自定義程序設計,而且不符合上述完整 Windows 應用程式相容性的需求。
FileTables
FileTable 功能建置在現有的 FILESTREAM 功能之上,可讓企業客戶藉由解決非交易式存取和檔案型數據的 Windows 應用程式相容性需求,將非結構化檔案數據和目錄階層儲存在 SQL Server 資料庫中。
比較 FILESTREAM 和 FileTable
| 特徵 / 功能 | 檔案伺服器和資料庫解決方案 | FILESTREAM 解決方案 | FileTable 解決方案 |
|---|---|---|---|
| 管理工作的單一故事 | 否 | 是的 | 是的 |
| 單一服務集:搜尋、報告、查詢等等 | 否 | 是的 | 是的 |
| 整合式安全性模型 | 否 | 是的 | 是的 |
| FILESTREAM 數據的就地更新 | 是的 | 否 | 是的 |
| 在資料庫中維護的檔案和目錄階層 | 否 | 否 | 是的 |
| Windows 應用程式相容性 | 是的 | 否 | 是的 |
| 檔案屬性的關聯式存取 | 否 | 否 | 是的 |
比較 FILESTREAM 和遠端 BLOB 存放區 (RBS)
如需這兩項功能的比較,請參閱 RBS 小組的這篇部落格文章: SQL Server 遠端 BLOB 存放區和 FILESTREAM 功能比較。
詳細資訊
FILESTREAM (SQL Server)
FileTable (SQL Server)
遠端 Blob 存放區 (RBS) (SQL Server)