为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:麒麟海光V10
【CPU】: SQL 运行很慢
【问题描述】*:sql运行很慢
运行了5分钟,还没出结果,可以找时间优化不?
SQL> explain SELECT
2 t.sysdate,
3 dm_hash(st.sqltext) sqlid,
4 0,
5 st.hash_value,
6 t.rows_processed,
7 t.executions,
8 0,
9 disk_reads,
10 buffer_gets,
11 rows_processed,
12 elapsed_time,
13 0,
14 3,
15 i.start_time,
16 0,
17 ‘0’,
18 t.user_name
19 FROM
20 (SELECT st.user_name,
21 cast(SYSTIMESTAMP(0) as datetime) sysdate ,
22 s.sql_id,
23 COUNT(*) executions,
24 SUM(s.time_used) elapsed_time,
25 SUM(s.n_logic_read) buffer_gets,
26 SUM(s.n_phy_read) disk_reads,
27 SUM(s.affected_rows) rows_processed
28 FROM
29 v$sql_history s left join V$SESSIONS st on(s.SESS_ID = st.SESS_ID)
30 WHERE
31 s.start_time > DATEADD(mi,-5,SYSTIMESTAMP(0))
32 GROUP BY
33 s.sql_id,st.user_name
34 ORDER BY
35 sql_id) t , (select sql_id,hash_value,listagg(sql_text,‘’) within group(order by sql_nth) as sqltext from v$sqltext where sql_nth <= 3 group by sql_id,hash_value) st ,
36 v$instance i
37 where t.sql_id = st.sql_id;
1 #NSET2: [1010, 3, 118]
2 #PRJT2: [1010, 3, 118]; exp_num(17), is_atom(FALSE)
3 #NEST LOOP INNER JOIN2: [1010, 3, 118];
4 #SLCT2: [1010, 3, 105]; T.SQL_ID = ST.SQL_ID
5 #NEST LOOP INNER JOIN2: [1010, 3, 105]; [with var]
6 #PRJT2: [2, 43, 60]; exp_num(3), is_atom(FALSE)
7 #SAGR2: [2, 43, 60]; grp_num(2), sfun_num(1), distinct_flag[0]; slave_empty(0) keys(V$SQLTEXT.SQL_ID, V$SQLTEXT.HASH_VALUE)
8 #SORT3: [2, 43, 60]; key_num(2), is_distinct(FALSE), top_flag(0), is_adaptive(0)
9 #SLCT2: [1, 4342, 60]; V$SQLTEXT.SQL_NTH <= 3
10 #DSCN: [1, 86852, 60]; SYSINDEXV$SQLTEXT(V$SQLTEXT)
11 #PRJT2: [23, 1, 45]; exp_num(8), is_atom(FALSE)
12 #HAGR2: [23, 1, 45]; grp_num(2), sfun_num(5), distinct_flag[0,0,0,0,0]; slave_empty(0) keys(S.SQL_ID, ST.USER_NAME)
13 #NEST LOOP LEFT JOIN2: [22, 12, 45]; join condition(S.SESS_ID = ST.SESS_ID) partition_keys_num(0) ret_null(0)
14 #SLCT2: [1, 12, 45]; (S.START_TIME > var8 AND S.SQL_ID = var1)
15 #DSCN: [1, 10000, 45]; SYSINDEXV$SQL_HISTORY(V$SQL_HISTORY)
16 #DSCN: [1, 2, 56]; SYSINDEXV$SESSIONS(V$SESSIONS)
17 #DSCN: [1, 1, 13]; SYSINDEXV$INSTANCE(V$INSTANCE)
已用时间: 2.238(毫秒). 执行号:0.
SQL> SQL>
你计划可以发图片会清晰一些,根据你上面的计划,怀疑是对V$SQLTEXT的估算不准,可以尝试hint一下/*+NO_USE_CVT_VAR*/试试