SQLServer IMAGE类型数据的多部分下载



一些上下文优先:当你想通过互联网加速下载FILE时,你可以使用多部分文件下载器,也被称为下载加速器。

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

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

其他信息:如果可能的话,我计划使用C#开发一个应用程序来执行SQLServer IMAGE数据的多部分下载。

您可以使用SUBSTRING函数来获取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)。

最新更新