首页 > 解决方案 > 性能最差/长时间运行的查询 (Teradata)

问题描述

首先,让我首先说这个问题可能已经存在很长时间了。但是,由于我是 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

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

我们正在使用 Teradata v14。

非常感谢任何帮助。如果需要其他信息,请告诉我。

干杯!

标签: query-optimizationteradataquery-performance

解决方案


推荐阅读