注册

在JDBC中取得上一条的sql执行时间,应该查询什么视图?

王文杰 Valen 2023/12/21 527 0

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:CENTOS
【CPU】:1
【问题描述】*:在JDBC中取得上一条的sql执行时间,应该查询什么视图?
目前用的是先查询SQLTEXT获得sql_id,再查询SQL_HISTORY,但SQL_HISTORY会有多条,利用desc排序后,取第一条。感觉效率不高。有没有最佳实践? 谢谢老师

String sql_time= "select TIME_USED,TOP_SQL_TEXT from  V$SQL_HISTORY where sql_id  = (select sql_id from v$sqltext where sql_text ='"+sql+"') order by seq_no desc";
             Statement stt = conn.createStatement();
            ResultSet rs2 = stt.executeQuery(sql_time);
            int top=0;
            while (rs2.next()&top<1) {
                int s = rs2.getInt(1);
                String txt  = rs2.getString(2);
                System.out.println("运行时间:"+s + "     "+txt);
                top++;
            }
回答 0
暂无回答
扫一扫
联系客服