wordpress   发布时间:2022-04-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何估算Windows Azure Table存储查询性能?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我想评估一下我的 Windows Azure Table商店查询规模.为此,我将一个简单的测试环境放在一起,我可以增加表中的数据量,并测量查询的执行时间.基于时间我想定义一个可用于评估未来查询性能的成本函数. 我评估了以下查询: >使用PartitionKey和RowKey进行查询 >使用PartitionKey和属性进行查询 >使用PartitionKey和两个RowKeys进行查询 >使用Pa
@H_403_4@
我想评估一下我的 Windows Azure Table商店查询规模.为此,我将一个简单的测试环境放在一起,我可以增加表中的数据量,并测量查询的执行时间.基于时间我想定义一个可用于评估未来查询性能的成本函数.

我评估了以下查询

>使用PartitionKey和RowKey进行查询
>使用PartitionKey和属性进行查询
>使用PartitionKey和两个RowKeys进行查询
>使用PartitionKey和两个属性进行查询

对于最后两个查询,我检查了以下两种模式:

> PartitionKey ==“…”&& (RowKey ==“……”|| RowKey ==“……”)
>(PartitionKey ==“…”&&& RowKey ==“…”)|| (PartitionKey ==“…”&& RowKey ==“……”)

为了最大限度地减少传输延迟,我在Azure实例上执行了测试.根据测量结果,我可以看到

>查询1(毫不奇怪,因为表是基于这些字段编制索引的)非常快,如果我在表中有大约150000个条目,则大约10-15ms.
>查询2需要分区扫描,因此执行时间与存储的数据呈线性增长.
>查询3.1执行几乎与查询2完全相同.因此,此查询也使用完整的分区扫描执行,对我来说似乎有点奇怪.
>查询4.1比查询3.1慢两倍多.所以看起来它是用两个分区扫描进行评估的.
>最后,查询3.2和4.2的执行速度几乎比查询2慢4倍.

你能解释一下查询/过滤器解释器的内部吗?即使我们接受查询3.1需要分区扫描,查询4.1也可以使用相同的逻辑(并在同一时间)进行评估.查询3.2和4.2对我来说似乎是一个谜.关于那些的任何指针?

显然,这一点的重点是,我想在一个查询查询不同的元素,以最大限度地降低成本,同时不会失去性能.但似乎对每个元素使用单独的查询(使用任务并行库)是唯一真正的@L_772_37@解决方案.这样做的可接受方式是什么?

@H_403_4@

解决方法

使用3.2和4.2之类的查询,将逐个完整的分区扫描以及属性.即使这些分区位于两台不同的计算机上,查询也不会并行运行,这就是为什么你看到这么长时间执行的原因.这是因为Windows Azure没有对查询进行查询优化.以某种方式编写代码可以使它们并行运行.

如果您希望获得更快的性能,那么您就是正确的,您需要使用任务并行库并行运行查询以获得更高的性能.

@H_403_4@ @H_403_4@
@H_403_4@
@H_403_4@

大佬总结

以上是大佬教程为你收集整理的如何估算Windows Azure Table存储查询性能?全部内容,希望文章能够帮你解决如何估算Windows Azure Table存储查询性能?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。