计算 Teradata 查询执行时间

Calculate Teradata Query Execution Time

我正在尝试计算特定 Teradata 用户的 Teradata 查询执行时间。我目前从那里得到以下启发的查询: Calculating-the-actual-query-run-time

查询:

SELECT date
,a.username
,a.errorcode
,SUBSTR(b.sqltextinfo, 1, 15000)
,a.starttime
,a.firstresptime
,a.firststeptime
,((a.firstresptime - a.starttime) HOUR(4) TO SECOND(2)) AS elapsedtime
,((a.firstresptime - a.firststeptime) HOUR(4) TO SECOND(2)) AS executiontime
,elapsedtime - executiontime AS delaytime
FROM dbc.QryLogV a
INNER JOIN dbc.QryLogSqlV b ON a.procid = b.procid AND a.queryid = b.queryid 
WHERE a.Username = 'xxx';

遗憾的是它触发了错误:

Executed as Single statement. Failed [7453 : HY000] Interval field overflow.

几年前,DBQL 中时间戳的数据类型从 TIMESTAMP(2) 更改为 TIMESTAMP(6),现在当您尝试在结果中获取 SECOND(2) 时,它会溢出。要解决此问题,请使用 SECOND(6) 或 ``SECOND`。

顺便说一句,根据您的版本,您会发现 ElapsedTimeDelayTime 已预先计算在 dbc.QryLogV 中。