Parallel processing Teradata中的实际并行效率%

Parallel processing Teradata中的实际并行效率%,parallel-processing,teradata,Parallel Processing,Teradata,Teradata是为并行性而构建的。 我相信,从下面的查询中,我们可以衡量用户查询的并行效率 SELECT USERNAME, NumOfActiveAMPs, ((sum(AMPCPUTime))/1024) / ((sum(MaxAmpCPUTime) * NumOfActiveAMPs)/1024) * 100 as Parallel_Efficiency, count(1) FROM dbc.qrylog WHERE MaxAmpCPUTime > 0 group by 1

Teradata是为并行性而构建的。 我相信,从下面的查询中,我们可以衡量用户查询的并行效率

SELECT 
USERNAME, 
NumOfActiveAMPs,
((sum(AMPCPUTime))/1024) / ((sum(MaxAmpCPUTime) * NumOfActiveAMPs)/1024) * 100 as Parallel_Efficiency,
count(1)
FROM dbc.qrylog 
WHERE MaxAmpCPUTime > 0 
group by 1,2
在理想情况下,我相信PE可以达到100% 但由于各种原因,我发现大多数PE(累积)通常低于50%

您认为我们应该努力实现的并行效率是多少? 有人告诉我,试图实现高PE(比如60%或更多)对系统状态也不好,但不确定原因,这是真的吗?你的想法


谢谢分享你的想法

给定查询的并行效率可以计算为
AMPCPUTime/(MaxAMPCPUTime*(HASHAMP()+1))
。其中
(MaxAMPCPUTime*(HASHAMP()+1))
影响CPU
的度量,表示参与查询的AMP消耗的最高CPU乘以配置中的AMP数。您可能会发现,各个工作负载的并行效率都很高

有时我想知道,如果用查询使用的AMP数替换系统中的节点数,单个查询的PE是否会更准确。此度量在DBQL中可用,可以帮助平衡使用PI或USI访问路径的查询,这些路径不都是AMP操作

通过将平均节点利用率除以最大节点利用率,可以使用恢复指标获得整个系统的并行效率。这有助于您理解系统如何处理给定的工作量,但不考虑工作量可能有多大。在这里,您可以看到总体效率大于60%,越接近100%,节点协同工作就越好


我知道您的查询是关于单个查询的,但我认为共享有关您环境的PE的详细信息也将是有益的。

给定查询的并行效率可以计算为
AMPCPUTime/(maxampputime*(HASHAMP()+1))
。其中
(MaxAMPCPUTime*(HASHAMP()+1))
影响CPU
的度量,表示参与查询的AMP消耗的最高CPU乘以配置中的AMP数。您可能会发现,各个工作负载的并行效率都很高

有时我想知道,如果用查询使用的AMP数替换系统中的节点数,单个查询的PE是否会更准确。此度量在DBQL中可用,可以帮助平衡使用PI或USI访问路径的查询,这些路径不都是AMP操作

通过将平均节点利用率除以最大节点利用率,可以使用恢复指标获得整个系统的并行效率。这有助于您理解系统如何处理给定的工作量,但不考虑工作量可能有多大。在这里,您可以看到总体效率大于60%,越接近100%,节点协同工作就越好

我知道您的查询是关于个人查询的,但我认为分享您环境的PE的详细信息也将是有益的