计算Teradata查询执行时间

时间:2018-04-23 05:52:10

标签: sql performance teradata 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';

可悲的是它触发了错误:

  

作为单一陈述执行。失败[7453:HY000]间隔字段溢出。

1 个答案:

答案 0 :(得分:1)

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

顺便说一句,根据你的发布,你会发现ElapsedTime&在dbc.QryLogV中预先计算的DelayTime