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

时间:2015-03-04 10:15:58

标签: c# sql-server download

首先是一些背景: 当您想通过互联网加速下载文件时,您可以使用多部分文件下载器,也称为下载加速器。

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

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

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

1 个答案:

答案 0 :(得分:1)

您可以使用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)。