簡體   English   中英

從Image到Varbinary(最大)

[英]From Image to Varbinary(max)

使用SQL 2005

我有一個5列的表

ID - int 
Param - smallint 
Data1 - image 
Data2 - image
Data3 - image

圖像大小可以只有20個字節,可以大到1MB(是的,超過8k)。 圖像的大小不是恆定的,因為它保存壓縮數據。 BLOB的大部分日期約為512B至1.5kB。 Data1,Data2和Data3之間存在邏輯關系,這是它們存儲在一起的原因。 在擁有3年歷史數據的數據庫中,有6600 條記錄。

努力改進數據存儲並使系統為未來的SQL版本做好准備。 我想將圖像列更改為varbinary(MAX)數據類型。 FILESTREAM將是另一種可能性,但我不確定持有約2億個文件會更有效。

在將圖像更改為varbinary(max)之后,我注意到表的整體大小已縮小(只是一點點),但每次添加/刪除數據時,完成該過程所需的時間要長得多。

根據我的理解,如果varbinary(max)值小於8k,則將其放在表中,而如果它大於8k,則將其放在其他位置,並將指向該數據的指針存儲在表中。 使用圖像時,即使圖像數據小於8k,也會存儲指針。

通常,每天添加和刪除20000條記錄,因此沒有太多的數據添加/刪除,單個選擇通常在10-200個連續記錄中。

有沒有辦法設置varbinary(max)數據總是(無論大小)存儲在表外,與存儲圖像的方式相同?

您可以使用sp_tableoption設置“超出行的大值類型”

一些額外的信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM