1. 程式人生 > >Sqlserver2008 FileStream解決圖片存儲問題

Sqlserver2008 FileStream解決圖片存儲問題

系統 i/o 存儲過程 默認值 右鍵菜單 會有 選項 figure 了解

SQLserver FileStream的出現就是為了解決對大對象的存儲中一個矛盾。

對於圖片的存儲方式

第一種:方式是存儲在數據庫裏面,這種方式一般使用image字段,或者varbinary(max)來做。好處是可以統一備份,但實際上讀取效率比較低。大於1MB的文件就會有問題

第二種:方式是文件存儲在文件系統,而數據庫中存儲了一個路徑。這種方式數據庫壓力減輕了,卻很不方便統一備份和管理。

SQL SERVER 2008的文件流其實就是二者的統一。文件還是放在文件系統的,但由數據庫進行管理。可以統一備份和還原。FILESTREAM不是一個字段類型,它定義在字段後面,聲明該列用於文件流即可。該列依然是用二進制保存的

一般都是在數據庫中要特別添加一個文件組和一個或多個文件用來存儲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解決圖片存儲問題