[英]Azure Table Storage access time - inserting/reading from
我正在创建一个程序,用于存储和读取Azure表中存储在CSV文件中的一些程序。 我得到的是CSV文件,它可以有不同数量的列,以及3k到50k行之间。 我需要做的是在Azure表中上传该数据。 到目前为止,我设法上传数据并检索它。 我正在使用REST API,并且上传我正在创建XML批处理请求,每个请求有100行。 现在工作正常,除了上传需要太长时间,例如。 对于3k行,大约需要30秒。 有没有办法加快速度? 我注意到处理响应需要花费大部分时间(对于ReadToEnd()
命令)。 我在某处读到将代理设置为null可能有所帮助,但在我的情况下它并没有做太多。
我还发现某个地方可以将整个XML请求上传到blob然后从那里执行,但我找不到任何这样做的例子。
using (Stream requestStream = request.GetRequestStream())
{
requestStream.Write(content, 0, content.Length);
}
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
Stream dataStream = response.GetResponseStream();
using (var reader = new StreamReader(dataStream))
{
String responseFromServer = reader.ReadToEnd();
}
}
至于从azure表中检索数据,我设法每个请求获得1000个实体。 至于那个,CS需要大约9s,行数为3k。 从流中读取也需要大部分时间。 当我调用这部分代码时(再次ReadToEnd()
):
response = request.GetResponse() as HttpWebResponse;
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
string result = reader.ReadToEnd();
}
有小费吗?
正如您所提到的,您正在使用REST API,您可能必须编写额外的代码并依赖于您自己的方法来实现性能改进,然后使用客户端库。 在使用存储客户端库将是最好的,你可以使用已经建立特征描述,加快插入,更新插入等你的情况在这里 。
但是,如果您使用的是Storage Client Library和ADO.NET,则可以使用以下由Windows Azure Table团队编写的文章作为改进Azure Access性能的支持方式:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.