gpt4 book ai didi

sql - 从图像到 Varbinary(最大)

转载 作者:行者123 更新时间:2023-12-02 16:38:31 25 4
gpt4 key购买 nike

使用 SQL 2005

我有一个包含 5 列的表格

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

图像大小可以小至 20 字节,大至 1MB(是的,超过 8k)。图像的大小不是恒定的,因为它保存压缩数据。大多数日期BLOB大约在512B到1.5kB左右。 Data1、Data2 和 Data3 之间存在逻辑关系,这就是它们存储在一起的原因。在保存 3 年历史数据的数据库中,有 66百万 条记录。

努力改进数据存储并使系统为 future 的 SQL 版本做好准备。我想将图像列更改为 varbinary(MAX) 数据类型。 FILESTREAM 是另一种可能性,但我不确定它保存约 2 亿个文件会更有效。

将图像更改为 varbinary(max) 后,我注意到表格的整体大小缩小了(只是一点点),但每次添加/删除数据时,该过程需要更长的时间才能完成。

据我了解,如果 varbinary(max) 值小于 8k,则将其放置在表中,而如果大于 8k,则将其放置在其他位置,并且指向该数据的指针存储在表中。使用图像时,即使图像数据小于8k,也会存储指针。

一般情况下,每天会添加和删除 20000 条记录,因此不会有太多的数据添加/删除,一次选择通常会连续 10-200 条记录。

有没有办法将 varbinary(max) 数据设置为始终(无论大小)存储在表外部,就像存储图像一样?

最佳答案

您可以使用sp_tableoption设置“行外大值类型”

Some additional info

关于sql - 从图像到 Varbinary(最大),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5665309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com