Trafodion 查看历史SQL执行情况

默认情况下,Trafodion会保存SQL执行的历史信息到”REPOS“下,”REPOS“下目前有4张表,保存相应的统计信息,具体描述如下 ,

Table NameTable Desc
METRIC_QUERY_AGGR_TABLEThis table contains the statistics of short-running queries, which have been aggregated into one record and written to the repository at the end of each statistics aggregation interval. For descriptions of the fields in the table, see METRIC_QUERY_AGGR_TABLE (Release 1.1). If you are using Trafodion Release 1.0, see METRIC_QUERY_AGGR_TABLE (Release 1.0).
METRIC_QUERY_TABLEThis table stores query statistics information gathered during the compilation and execution of queries that run longer than the configured interval. For descriptions of the fields in the table, see METRIC_QUERY_TABLE (Release 1.1). If you are using Trafodion Release 1.0, see METRIC_QUERY_TABLE (Release 1.0).
METRIC_SESSION_TABLEThis table provides access to ODBC and JDBC session statistics, which are gathered when clients connect to a Trafodion instance. These statistics include the data that is collected at the start and end of each client session. For descriptions of the fields in the table, see METRIC_SESSION_TABLE (Release 1.1). If you are using Trafodion Release 1.0, see METRIC_SESSION_TABLE (Release 1.0).
METRIC_TEXT_TABLEThis table is reserved for future use. For descriptions of the fields in the table, see METRIC_TEXT_TABLE (Release 1.1). This table does not exist in Trafodion Release 1.0.

关于”REPOS“相应的详细内容,可参考: https://cwiki.apache.org/confluence/display/TRAFODION/Trafodion+Manageability

以下列出几个较常用的SQL对数据库SQL情况做统计分析,类似SQL可依据以下样例进行相应修改即可实现。
注:默认情况下,EsgynDB只会保存执行时间超过60秒的SQL的详细信息保存到“REPOS”下,若希望修改默认配置,可以通过修改dcs-site.xml配置文件添加以下配置,并重启dcs实现。

<property>
<name>dcs.server.user.program.statistics.limit.time</name>
<value>0</value>
</property>

1 查询最新执行的10 条语句执行情况(不论是否执行完成)

SELECT
[first 10] EXEC_START_UTC_TS AS EXEC_START_UTC_TS,
QUERY_ELAPSED_TIME AS QUERY_ELAPSED_TIME,
CLIENT_NAME AS CLIENT_NAME
FROM TRAFODION."_REPOS_".METRIC_QUERY_TABLE
ORDER BY EXEC_START_UTC_TS DESC;

2 查询最新已完成的10 条语句执行情况

SELECT
[first 10] EXEC_START_UTC_TS AS EXEC_START_UTC_TS,
EXEC_END_UTC_TS AS EXEC_END_UTC_TS,
QUERY_ELAPSED_TIME AS QUERY_ELAPSED_TIME,
CLIENT_NAME AS CLIENT_NAME
FROM TRAFODION."_REPOS_".METRIC_QUERY_TABLE
WHERE EXEC_END_UTC_TS IS NOT NULL
ORDER BY EXEC_START_UTC_TS DESC;

3 统计过去24 小时内已完成SQL 个数

SELECT
DISTINCT (CAST(EXEC_START_UTC_TS AS DATE)) AS START_DATE,
COUNT(*) AS NUM_OF_QUERIES,
MAX(CAST(EXEC_START_UTC_TS AS TIME(6))) AS MAX_START_TIME,
MIN(CAST(EXEC_START_UTC_TS AS TIME(6))) AS MIN_START_TIME
FROM TRAFODION."_REPOS_".METRIC_QUERY_TABLE
WHERE EXEC_START_UTC_TS <= CURRENT
AND EXEC_START_UTC_TS >= CURRENT - INTERVAL '1' DAY
AND EXEC_END_UTC_TS IS NOT NULL
GROUP BY 1;

4 按客户端分组统计过去24 小时执行SQL 个数

SELECT
CLIENT_NAME,
COUNT(*) AS NUM_OF_QUERIES
FROM TRAFODION."_REPOS_".METRIC_QUERY_TABLE
WHERE EXEC_START_UTC_TS <= CURRENT
AND EXEC_START_UTC_TS >= CURRENT - INTERVAL '1' DAY
AND EXEC_END_UTC_TS IS NOT NULL
GROUP BY CLIENT_NAME
ORDER BY CLIENT_NAME;

5 按客户端分组统计过去24小时执行SQL个数、平均执行时间及最长执行时间

SELECT
CLIENT_NAME,
COUNT(*) AS NUM_OF_QUERIES,
AVG(QUERY_ELAPSED_TIME)/1000 AS AVG_QRY_ELAPSED_MSEC,
MAX(QUERY_ELAPSED_TIME)/1000 AS MAX_QRY_ELAPSED_MSEC
FROM TRAFODION."_REPOS_".METRIC_QUERY_TABLE
WHERE EXEC_START_UTC_TS <= CURRENT
AND EXEC_START_UTC_TS >= CURRENT - INTERVAL '1' DAY
AND EXEC_END_UTC_TS IS NOT NULL
GROUP BY CLIENT_NAME
ORDER BY CLIENT_NAME;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据源的港湾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值