SQL Server MAX-Length數(shù)據(jù)及添加數(shù)據(jù)到LOB列的存儲

本文簡要介紹MAX-Length數(shù)據(jù)及添加數(shù)據(jù)到LOB列的存儲,另外主要介紹filestream 數(shù)據(jù)的基

  本文簡要介紹MAX-Length數(shù)據(jù)及添加數(shù)據(jù)到LOB列的存儲,另外主要介紹filestream 數(shù)據(jù)的基礎(chǔ)。

  SQL2005/2008給我們MAX定義符選項(xiàng)來定義可變長度字段。通過MAX定義,你可以讓SQL Server來決定存儲值作為常規(guī)的varchar,nvarchar或varbinary或LOB數(shù)據(jù)(通常在大于8000字節(jié)時會使用text,ntext,image)。

  在存儲引擎中,每一個LOB列被分解成不大于8040字節(jié)的碎片。當(dāng)附加數(shù)據(jù)到LOB列時,SQL Server查找附加點(diǎn),并試圖尋找新數(shù)據(jù)將被增加的位置,新老數(shù)據(jù)如果合起來大于8040字節(jié),那么分配一個大對象頁(Large Object Page)直到余下的碎片小于8040字節(jié),再尋找一個頁存放其余的字節(jié)。當(dāng)SQL Server為LOB數(shù)據(jù)分配頁時,它有兩個分配策略:(1)如果數(shù)據(jù)小于64Kb,隨機(jī)分配一個頁。這個頁來自一個大對象IAM的部分的一個范圍(extent),但頁不一定是連續(xù)的。(2)如果大于64KB,它使用一個附加頁分配器,一次性的分配一個范圍,在這個范圍中連續(xù)地寫數(shù)據(jù)。因而,推薦的做法是:如果需要插入64KB數(shù)據(jù),那么一次插入8*8040時,數(shù)據(jù)將是繼續(xù)存放的,而且是在一個范圍(extent)內(nèi)。

  如果你發(fā)現(xiàn)一個Large Object 數(shù)據(jù)變得越來越碎片,可以使用ALter Index reorganize選項(xiàng)來整理它。前提是默認(rèn)打開為ON的WithLOB_compaction選項(xiàng)你沒有關(guān)閉它。

  文件流數(shù)據(jù)(FileStream Data)

  盡管SQL Server提供了很大的便利,使得你可以在中靈活存儲Large object Data。好處:

  1、大對象數(shù)據(jù)的事務(wù)一致性可以保證。

  2、包含大對象數(shù)據(jù)的備份與恢復(fù),允許你完整地在某個時刻點(diǎn)恢復(fù)大對象數(shù)據(jù)。

  3、所有的數(shù)據(jù)使用一個單一的存儲和查詢環(huán)境。

  但是也有一些不利因素:

  1、大對象數(shù)據(jù)在緩存中占用大量的緩沖器。

  2、更新一個大對象會引起大范圍的數(shù)據(jù)整理。

  3、數(shù)據(jù)庫文件會變得非常大。

  SQL Server 2008 和 SQL Server Native Client 10.0 支持增強(qiáng)的 FILESTREAM 功能。FILESTREAM 功能允許通過 SQL Server 或通過直接訪問 Windows 文件系統(tǒng)來存儲和訪問大型二進(jìn)制值。大型二進(jìn)制值是大于 2 GB 的值。有關(guān)增強(qiáng)的 FILESTREAM 支持的詳細(xì)信息,請參閱FILESTREAM 概述。文件流來作為一種大數(shù)據(jù)存儲方案,其優(yōu)勢:

  1、大對象數(shù)據(jù)存儲在文件系統(tǒng)中卻在數(shù)據(jù)庫中有一個48字節(jié)的文件指針值存儲在包含文件流的列中。

  2、大對象數(shù)據(jù)可以通過T-SQL和NTFS 流APIs來訪問。

  3、大對象數(shù)據(jù)的大小僅受限于NTFS值大小,而不是老的2GB大小限制(LOB數(shù)據(jù))

  劣勢:

  1、數(shù)據(jù)庫鏡像不能被用于包含文件流數(shù)據(jù)的數(shù)據(jù)庫。

  2、數(shù)據(jù)庫快照不能包含文件流文件組,因而,文件流數(shù)據(jù)不可用。在快照中使用slect請求一個文件流列會出錯。

  3、文件流數(shù)據(jù)不能被SQL Server本地加密。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊12 分享