首先是一些背景: 当您想通过互联网加速下载文件时,您可以使用多部分文件下载器,也称为下载加速器。
问题: 我有一个zipped文件存储在列类型为IMAGE的sql-server表中。 是否可以同时在多个部分下载单个IMAGE数据(zip文件)?
举个例子;假设我使用两个线程来下载1000字节的单个IMAGE数据。线程1将从索引0开始下载并在索引500处结束,线程2将从索引500开始下载并在到达数据末尾时结束。
其他信息: 如果可以,我计划使用C#开发一个应用程序来执行SQLServer IMAGE数据的这个多部分下载。
答案 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)。