最差的表现/长时间查询(Teradata)

时间:2018-06-11 19:39:43

标签: query-optimization teradata query-performance

首先,让我首先说这个问题已经存在了很长时间。但是,由于我是Teradata的新手,我要求你帮助实现我的目标。

话虽如此,我正在尝试构建一个查询,该查询将显示给定时间帧(通常是过去)中排名前10位的最差/长时间运行的查询。 我已经在网上做了一些阅读,并提出了一些可能有助于识别此类查询的指标: -

SELECT    
UserName,
LogDate,
QueryID,
StartTime,
FirstRespTime,
((FirstRespTime - StartTime) HOUR(4) TO SECOND(2)) AS ElapsedTime,
((FirstRespTime - FirstStepTime) HOUR(4) TO SECOND(2)) AS EexecutionTime,
(FirstRespTime - StartTime) HOUR to SECOND(4) AS FirstRespElapsedTime,
ParserCPUTime,
AMPCPUTime,
AMPCPUTime + ParserCPUTime AS TotalCPUTime,
SpoolUsage/(1024*1024*1024) AS Spool_GB,
(MaxAMPCPUTime) * (HASHAMP() + 1) AS ImpactCPU
CAST(100-(nullifzero(AMPCPUTime/HASHAMP() + 1) * 100 /nullifzero(MaxAMPCPUTime)) AS INTEGER ) AS "CPUSkew%",
TotalIOCount,
MaxAMPIO * (HASHAMP() + 1) AS ImpactIO,
CAST(100-((TotalIOCount/HASHAMP() + 1) * 100 /nullifzero(MaxAMPIO)) AS INTEGER ) AS "IOSkew%",
QueryText
FROM pdcrinfo.<tables>
.....
.....
WHERE
logdate BETWEEN <input start-date> AND <input end-date>
AND
AMPCPUTime > 0

但是,我仍在努力解决以下问题 -

  • 我上面显示的计算是否准确?
  • 以上指标列表是否足够?或者,还有其他的 还需要包含在上面列表中的度量标准?
  • 我对ImpactCPU指标计算逻辑感到困惑。距离 从上面提到的那个,我发现另一个逻辑为
    ImpactCPU = (max_vproc_CPU * number of vprocs)。 请说明正确的。
  • 请告诉我要使用的历史记录表(在pdcrinfo等中)
  • 最后,我应该采用什么逻辑将所有这些指标合并为一个 确定前10名?

我们正在使用Teradata v14。

非常感谢任何帮助。如果有必要提供更多信息,请与我们联系。

干杯!

0 个答案:

没有答案