我有一个Azure表,它存储了由代码的第一个字母分隔的1000个折扣代码,因此大约有30个分区,每个分区有1000条记录。在我的应用程序中,我输入一个代码并从表中获取特定记录。然后,我更新折扣代码,说它已被使用。当使用1000个并发用户加载测试此应用程序30秒时,读取代码的响应时间不到1秒,但更新记录需要10秒以上。这是表存储的典型行为还是有办法加快速度?
//update discount code
string code = "A0099";
CloudStorageAccount storageAccount = CloudStorageAccount.Parse("constring...");
CloudTableClient tableClient = storageAccount.CreateCloudTableClient();
CloudTable table = tableClient.GetTableReference("discounts");
string partitionKey = code[0].ToString().ToUpper();
TableOperation retrieveOperation = TableOperation.Retrieve<DiscountEntity>(partitionKey, code);
TableResult retrievedResult = table.Execute(retrieveOperation);
if (retrievedResult.Result != null) {
DiscountEntity discount = (DiscountEntity)retrievedResult.Result;
discount.Used = true;
TableOperation updateOperation = TableOperation.Replace(discount);
table.Execute(updateOperation);
}
答案 0 :(得分:0)
这不是默认行为,但我之前已经看过了......首先检查你的vm大小,因为vm大小越大,I / O越快(某个地方的MS doc就是这样说的)胖VM拥有快速I / O&#34;或类似的东西......)但是10秒甚至对于超小vm来说......
为了加快速度,我建议你:
答案 1 :(得分:0)
您可以检查的一件事是特定请求的E2E时间与服务器处理请求所花费的时间。这将允许您查看瓶颈是客户端/网络还是服务器。
有关启用Windows Azure存储分析(特别是日志记录)的详细信息,请参阅How To Monitor a Storage Account和Storage Analytics文章。