为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。 【DM版本】:DM8 【操作系统】:Linux 【CPU】:1cpu 8核 【问题描述】*:如何获取数据运行过程中执行耗时较长的 SQL 及执行时间?
1、对于正在执行的会话,查看当前执行SQL耗时:
select datediff(s, last_recv_time, sysdate) exectime, dbms_lob.SUBSTR(sf_get_session_sql(sess_id)) sql_txt, CUR_SQLSTR, sess_id, state, user_name, clnt_ip, clnt_ver from v$sessions where state = 'ACTIVE' order by exectime desc
2、历史SQL可以查看V$SQL_HISTORY,time_used字段表示SQL执行时间单位微秒。 3、可以查看V$LONG_EXEC_SQLS 查看超过设置时间的SQL语句(默认记录超过1s的SQL),记录最近执行的1000条。 4、通过开启SQL日志,参考: https://eco.dameng.com/document/dm/zh-cn/ops/performance-optimization.html#四、SQL%20优化
可以配置 sql日志 按需记录
可以看看这个 https://eco.dameng.com/document/dm/zh-cn/ops/performance-optimization.html#4.1%20%E5%AE%9A%E4%BD%8D%E6%85%A2%20SQL
1、对于正在执行的会话,查看当前执行SQL耗时:
2、历史SQL可以查看V$SQL_HISTORY,time_used字段表示SQL执行时间单位微秒。
3、可以查看V$LONG_EXEC_SQLS 查看超过设置时间的SQL语句(默认记录超过1s的SQL),记录最近执行的1000条。
4、通过开启SQL日志,参考:
https://eco.dameng.com/document/dm/zh-cn/ops/performance-optimization.html#四、SQL%20优化