繁体   English   中英

Azure表存储访问时间 - 插入/读取

[英]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性能的支持方式:

Windows Azure表的.NET和ADO.NET数据服务性能提示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM