如何估算Windows Azure Table存储查询性能?
我想评估一下我的
Windows Azure Table商店查询规模.为此,我将一个简单的测试环境放在一起,我可以增加表中的数据量,并测量查询的执行时间.基于时间我想定义一个可用于评估未来查询性能的成本函数.
我评估了以下查询: >使用PartitionKey和RowKey进行查询 对于最后两个查询,我检查了以下两种模式: > PartitionKey ==“…”&& (RowKey ==“……”|| RowKey ==“……”) 为了最大限度地减少传输延迟,我在Azure实例上执行了测试.根据测量结果,我可以看到 >查询1(毫不奇怪,因为表是基于这些字段编制索引的)非常快,如果我在表中有大约150000个条目,则大约10-15ms. 你能解释一下查询/过滤器解释器的内部吗?即使我们接受查询3.1需要分区扫描,查询4.1也可以使用相同的逻辑(并在同一时间)进行评估.查询3.2和4.2对我来说似乎是一个谜.关于那些的任何指针? 显然,这一点的重点是,我想在一个查询中查询不同的元素,以最大限度地降低成本,同时不会失去性能.但似乎对每个元素使用单独的查询(使用任务并行库)是唯一真正的快速解决方案.这样做的可接受方式是什么? 解决方法
使用3.2和4.2之类的查询,将逐个完整的分区扫描以及属性.即使这些分区位于两台不同的计算机上,查询也不会并行运行,这就是为什么你看到这么长时间执行的原因.这是因为Windows Azure没有对查询进行查询优化.以某种方式编写代码可以使它们并行运行.
如果您希望获得更快的性能,那么您就是正确的,您需要使用任务并行库并行运行查询以获得更高的性能. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |