企業資料中超過 80% 為非結構化資料(文件、影像、音訊、影片、XML、空間資料)。傳統做法將 BLOB 存檔案系統或專用儲存,導致:
SQL Server 2008 引入 FILESTREAM、遠端 BLOB 儲存 (RBS)、整合式全文檢索,提供統一管理平台。
| 特性 | varbinary(max) | FILESTREAM | 遠端 BLOB 儲存 (RBS) |
|---|---|---|---|
| 儲存位置 | 資料庫資料檔 | 本機 NTFS 檔案系統 | 外部儲存(NAS、SAN、雲端) |
| 資料流效能 | 中(受資料庫引擎影響) | 高(匹配檔案系統串流) | 視外部儲存而定 |
| 單一 BLOB 大小 | 2 GB | 受限於檔案系統(TB 級) | 受限於外部儲存 |
| 交易一致性 | 資料庫層級(完整 ACID) | 資料庫層級(完整 ACID) | 連結層級(最終一致) |
| 備份/還原整合 | 原生支援 | 原生支援 | 需外部儲存配合 |
| 適用場景 | 小型 BLOB (< 256 KB)、高存取頻率 | 大型 BLOB、串流存取、需資料庫一致性 | 跨伺服器共享、雲端儲存、法規要求異地備份 |
EXEC sp_configure 'filestream_access_level', 2; RECONFIGURE;(2 = 啟用本機與遠端存取)FILEGROUP ... CONTAINS FILESTREAM 的資料庫或檔案群組。varbinary(max) FILESTREAM NULL 欄位,並加上 ROWGUIDCOL 唯一識別欄。INSERT/UPDATE/DELETE/SELECT。PathName() 與 GET_FILESTREAM_TRANSACTION_CONTEXT(),使用標準 CreateFile/ReadFile/WriteFile 進行高效能串流存取,交易語意由資料庫保證。採用 提供者模型:
優點:應用程式碼不變即可切換儲存後端;支援異構儲存混合部署。
CONTAINS, FREETEXT) 的執行計畫,效能大幅提升。FILESTREAM、varbinary(max)、XML、空間資料的全文索引。SQL Server 2008 透過 FILESTREAM、RBS 與整合式全文檢索,打通結構化與非結構化資料的管理鴻溝,讓企業得以在單一平台上建立合規、高效、可擴充的資料資產管理體系。