Sqlserver2008 FileStream解決圖片存儲問題
SQLserver FileStream的出現就是為了解決對大對象的存儲中一個矛盾。
對於圖片的存儲方式
第一種:方式是存儲在數據庫裏面,這種方式一般使用image字段,或者varbinary(max)來做。好處是可以統一備份,但實際上讀取效率比較低。大於1MB的文件就會有問題
第二種:方式是文件存儲在文件系統,而數據庫中存儲了一個路徑。這種方式數據庫壓力減輕了,卻很不方便統一備份和管理。
SQL SERVER 2008的文件流其實就是二者的統一。文件還是放在文件系統的,但由數據庫進行管理。可以統一備份和還原。FILESTREAM不是一個字段類型,它定義在字段後面,聲明該列用於文件流即可。該列依然是用二進制保存的
具體操作
1)啟用服務器實例上的FILESTREAM(文件流)
打開SQL Server配置管理器,在SQL Server服務上點擊右鍵,然後點擊打開,在你想要啟用FILESTREAM(文件流)的SQL Server實例上點擊右鍵,從右鍵菜單中選擇“屬性”,切換到FILESTREAM(文件流)標簽,檢查“為Transact-SQL訪問啟用FILESTREAM(文件流)或已啟用完全訪問”選項,你也可以在這個標簽頁為文件I/O流訪問啟用FILESTREAM(文件流)
2)為數據庫實例啟用FILESTREAM(文件流)
執行系統存儲過程sp_configure,並設置filestream_access_level參數的值為2
EXEC sp_configure filestream_access_level, 2
GO
filestream_access_level參數有效的值包括:
◆ 0 在該實例上禁用FILESTREAM(文件流),這是默認值。
◆ 1 為Transact-SQL訪問啟用FILESTREAM(文件流)
◆ 2 為Transact-SQL和Win32流訪問啟用FILESTREAM(文件流)
經過這兩個步驟後,FILESTREAM特性就被啟用了,再進行導入,就沒問題了
Sqlserver2008 FileStream解決圖片存儲問題