成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL Server 2008新特性——FILESTREAM

數據庫 SQL Server
本文主要對SQL Server 2008中的一個新特性--FILESTREAM進行了介紹。

FILESTREAM簡介

FILESTREAM是SQL Server 2008中的一個新特性,允許以獨立文件的形式存放大對象數據,而不是以往一樣將所有數據都保存到數據文件中。以往在對業務系統的文件進行管理時有兩種方法,一種是將文件保存到服務器文件系統中,數據庫中只保存了該文件的路徑,在使用該文件時應用程序連接到服務器讀取文件;另一種是將文件以varbinary(max)或image數據類型保存到SQL Server中。而SQL Server 2008提供了FILESTREAM,結合這兩種方式的優點。

FILESTREAM使SQL Server數據庫引擎和NTFS文件系統成為了一個整體。Transact-SQL語句可以插入、更新、查詢、搜索和備份FILESTREAM數據。FILESTREAM使用NT系統緩存來緩存文件數據。這有助于減少FILESTREAM數據可能對數據庫引擎性能產生的任何影響。由于沒有使用SQL Server緩沖池,因此該內存可用于查詢處理。

在SQL Server中,BLOB可以是將數據存儲在表中的標準varbinary(max)數據,也可以是將數據存儲在文件系統中的FILESTREAM varbinary(max)對象。數據的大小和應用情況決定您應該使用數據庫存儲還是文件系統存儲。如果滿足以下條件,則應考慮使用FILESTREAM:

◆ 所存儲的對象平均大于1MB。

◆ 快速讀取訪問很重要。

◆ 您開發的是使用中間層作為應用程序邏輯的應用程序。

對于較小的對象,將varbinary(max)BLOB存儲在數據庫中通常會提供更為優異的流性能。

FILESTREAM存儲以varbinary(max)列的形式實現,在該列中數據以BLOB的形式存儲在文件系統中。BLOB的大小僅受文件系統容量大小的限制。文件大小為2GB的varbinary(max)標準限制不適用于存儲在文件系統中的BLOB。

若要將指定列使用FILESTREAM存儲在文件系統中,對varbinary(max)列指定FILESTREAM屬性。這樣數據庫引擎會將該列的所有數據存儲在文件系統,而不是數據庫文件中。

FILESTREAM數據必須存儲在FILESTREAM文件組中。FILESTREAM文件組是包含文件系統目錄而非文件本身的專用文件組。這些文件系統目錄稱為“數據容器”。數據容器是數據庫引擎存儲與文件系統存儲之間的接口。

使用FILESTREAM存儲時,需要注意以下內容:

◆ 如果表包含FILESTREAM列,則每一行都必須具有唯一的行ID。

◆ 不能嵌套FILESTREAM數據容器。

◆ 使用故障轉移群集時,FILESTREAM文件組必須位于共享磁盤資源上。

◆ FILESTREAM文件組可位于壓縮卷上。

使用FILESTREAM

在開始使用FILESTREAM之前,必須在SQL Server數據庫引擎實例中啟用FILESTREAM。具體啟用數據庫實例FILESTREAM的操作如下:

(1)在SQL Server配置管理器中打開SQL Server數據庫引擎的屬性窗口,切換到FILESTREAM選項卡,如圖所示:

(2)選中“針對Transact-SQL訪問啟用FILESTREAM”復選框,其他的選項是針對Windows進行讀寫的,可以都選中,然后單擊“確定”按鈕保存對FILESTREAM的設置。

(3)打開SSMS連接到數據庫實例,右擊數據庫實例,選擇“屬性”選項,系統將打開SQL Server實例的屬性窗口。

(4)切換的“高級”選項頁,在文件流訪問級別下拉列表框中選擇“已啟用完全訪問”選項,如圖所示:

#p#

(5)單擊“確定”按鈕,然后重啟數據庫實例,FILESTREAM在數據庫實例中設置完成。

在啟用了數據庫實例的FILESTREAM后,接下來就需要設置數據庫的FILESTREAM和創建具有FILESTREAM數據列的表:

(6)對應新建的數據庫,則在創建數據庫時創建FILESTREAM文件組,如果是現有數據庫,則使用ALTER DATABASE添加FILESTREAM的文件組,例如對TestDB1數據庫添加FILESTREAM的文件組,具體SQL腳本如代碼:

ALTER DATABASE [TestDB1]
ADD FILEGROUP [FileStreamGroup] CONTAINS FILESTREAM --添加FILESTREAM文件組
GO

ALTER DATABASE [TestDB1]
ADD FILE ( NAME = N'FileStream', FILENAME = N'C:\FileStream) --添加FILESTREAM文件
TO FILEGROUP [FileStreamGroup]
GO

系統將自動創建C:\FileStream文件夾并在其中寫入filestream.hdr文件,該文件是 FILESTREAM容器的頭文件不能刪除,一定要確保在運行該語句之前C:\FileStream并不存在。

(7)創建了FILESTREAM文件組后便可創建和修改表,指定某varbinary(max)類型的列包含FILESTREAM數據。例如創建Files表,該表包含FileID和FIleContent列,具體腳本如代碼:

CREATE TABLE Files
(
FileID UNIQUEIDENTIFIER ROWGUIDCOL NOT NULL UNIQUE,
ID INT UNIQUE,
FileContent VARBINARY(MAX) FILESTREAM NULL --FILESTREAM類型的二進制
)


管理與使用FILESTREAM

在創建好FILESTREAM表后即可向其中添加、修改和讀取數據。SQL Server支持使用T-SQL和WIN32 API兩種方式訪問FILESTREAM。

對于T-SQL訪問FILESTREAM數據列來說,FILESTREAM是完全透明的,也就是說,T-SQL仍然使用一般的訪問varbinary(max)數據列的方式訪問,并不會因為是FILESTREAM列而有所不同。

例如向Files表中插入數據、修改表數據和刪除數據的SQL腳本如代碼:

INSERT INTO Files --插入測試數據
VALUES (newid (),1, CAST('TestFileStream1' as varbinary(max)));
GO
UPDATE Files --更新測試數據
SET FileContent=CAST('TestFileStream2' as varbinary(max))
WHERE ID=1
GO
DELETE FROM Files --刪除測試數據
WHERE ID=1

無論是插入數據還是修改數據,SQL Server都將在文件系統中創建新的文件來保存***的修改文件內容,修改或刪除數據后文件系統中的文件將保留,而不會被同時刪除。

使用FILESTREAM來存儲二進制大型對象(BLOB)數據時,可使用Win32 API來處理文件。為了支持在Win32應用程序中處理FILESTREAMBLOB數據。所有FILESTREAM數據容器訪問都是在SQL Server事務中執行的。可在同一事務中執行T-SQL語句以保持SQL數據和FILESTREAM數據之間的一致性。

【編輯推薦】

  1. SQL Server 2008 的恢復和備份模式
  2. SQL Server 2008 數據挖掘的概念
  3. 在SQL Server 2008中安裝安全審計
責任編輯:楊鵬飛 來源: 博客園
相關推薦

2009-02-25 11:42:43

FILESTREAM文件流文件管理

2009-04-08 09:29:34

SQL Server新特性Resource Go

2010-07-13 15:29:24

SQL Server

2011-03-15 09:33:18

SQL Server 集成服務

2009-11-12 10:12:21

主數據管理SQL Server

2010-04-22 09:17:03

SQL Server

2010-07-07 14:30:22

SQL Server

2010-01-20 10:02:52

SQL Server2

2009-01-18 16:17:00

2011-08-29 18:02:29

SQL Server FileStream

2010-07-08 17:22:25

SQL Server

2010-06-03 15:40:00

Windows Ser

2010-06-29 17:38:01

SQL Server

2010-06-03 15:57:52

Windows Ser

2010-06-03 16:03:42

Windows Ser

2010-07-19 11:01:55

SQL Server

2009-11-05 18:33:16

Server 2008

2010-04-21 10:32:47

Windows Ser

2010-04-30 14:18:14

2010-06-03 14:48:45

Windows Ser
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文在线a在线 | 理论片免费在线观看 | 亚洲午夜在线 | 亚洲高清在线 | 国产一区二区精品在线 | 韩日一区二区三区 | 欧美亚洲在线视频 | 高清欧美性猛交xxxx黑人猛交 | 久久a久久| 欧美黄视频 | 日韩av在线不卡 | 激情五月婷婷 | 热久色| 婷婷去俺也去 | 黄色男女网站 | 亚洲视频一区 | 国产一区二区影院 | 91免费视频| 天堂av在线影院 | 久草青青草 | www.亚洲.com | 有码一区 | 99国产精品一区二区三区 | 国产高清在线精品 | 91久久精品日日躁夜夜躁欧美 | 亚洲欧美中文日韩在线v日本 | 精品日韩| aaaa一级毛片 | 在线视频中文字幕 | 精品国产不卡一区二区三区 | aⅴ色国产 欧美 | 久久久久久久久综合 | 亚洲天堂av在线 | 一区二区三区四区视频 | 日韩一区二区视频 | av网站推荐| 美女精品一区 | 久久五月婷 | 91aiai| 国产精品久久久久久久久久久久 | 麻豆亚洲|