SQLServer IMAGE类型数据的分段下载

Multipart download of SQLServer IMAGE type data

首先是一些上下文: 如果您想加快通过 Internet 下载文件的速度,可以使用多部分文件下载器,也称为下载加速器。

问题: 我有一个压缩文件存储在 IMAGE 列类型的 sql-server table 中。 是否可以同时下载多个部分的单个图像数据(zip 文件)?

举个例子;假设我使用两个线程来下载 1000 字节的单个图像数据。线程 1 将从索引 0 开始下载并在索引 500 处结束,线程 2 将从索引 500 开始下载并在到达数据末尾时结束。

补充信息: 如果可以的话,我打算用C#开发一个app来执行这个SQLServer IMAGE数据的分段下载。

您可以使用 SUBSTRING function to get sections of IMAGE 数据。例如,您可以使用这样的存储过程;

create proc dbo.GetImageData(@key int, @start bigint, @length bigint) as
begin

    select substring(MyImageValue, @start, @length)
    from dbo.MyImageTable
    where MyKey = @key

end

如果您打算使用多个线程来读取单个 IMAGE 值,我希望它能相当快地使连接容量饱和,所以我会在走得太远之前做一些真实世界的测试。

最后一点,IMAGE 数据类型已被弃用一段时间,如果可以,您应该研究将 IMAGE 列更改为 VARBINARY(MAX)。