[20210113]ashtop查询特定表的SQL语句2.txt --//昨天写的链接:http://blog.itpub.net/267265/viewspace-2749422/=>[20210112]ashtop查询特定表的SQL语句.txt --//实际上我的查询仅仅包含包含某个表字符串的sql语句,可能根本不包括该表,而且我还忽略比如视图以及同义词等情况. --//我决定重新改写语句. $ cat ref_t.sql accept owner prompt 'Please enter Name of Table Owner : ' accept table_name prompt 'Please enter Table Name to show reference SQLs for: ' set verify off column sql_text format a58 word_wrapped select /*+ ordered use_hash(d) use_hash(c) */ c.kglobt03 sql_id, sum(c.kglobt13) disk_reads, sum(c.kglobt14) logical_reads, sum(c.kglhdexc) executions, c.kglnaobj sql_text from sys.x$kglob o, sys.x$kgldp d, sys.x$kglcursor c where o.inst_id = userenv('Instance') and d.inst_id = userenv('Instance') and c.inst_id = userenv('Instance') and o.kglnaown = upper(nvl('&Owner',user)) and o.kglnaobj = upper('&Table_name') and d.kglrfhdl = o.kglhdadr and c.kglhdadr = d.kglhdadr group by c.kglnaobj,c.kglobt03 order by 3; --undefine owner --undefine table_name clear breaks --//以上脚本我用来查询相关表的sql语句.修改如下: $ cat ashtt.sql -------------------------------------------------------------------------------- -- -- File name: ashtop.sql -- Purpose: Display top ASH time (count of ASH samples) grouped by your -- specified dimensions -- -- Author: Tanel Poder -- Copyright: (c) http://blog.tanelpoder.com -- -- Usage: -- @ashtop <grouping_cols> <filters> <fromtime> <totime> -- -- Example: -- @ashtop username,sql_id session_type='FOREGROUND' sysdate-1/24 sysdate -- -- Other: -- This script uses only the in-memory V$ACTIVE_SESSION_HISTORY, use -- @dashtop.sql for accessiong the DBA_HIST_ACTIVE_SESS_HISTORY archive -- -------------------------------------------------------------------------------- COL "%This" FOR A7 --COL p1 FOR 99999999999999 --COL p2 FOR 99999999999999 --COL p3 FOR 99999999999999 COL p1text FOR A30 word_wrap COL p2text FOR A30 word_wrap COL p3text FOR A30 word_wrap COL p1hex FOR A17 COL p2hex FOR A17 COL p3hex FOR A17 COL AAS FOR 9999.9 COL totalseconds HEAD "Total|Seconds" FOR 99999999 COL event FOR A40 WORD_WRAP with sqla as (SELECT /*+ MATERIALIZE ordered use_hash(d) use_hash(c) */ DISTINCT c.kglobt03 sql_id FROM sys.x$kglob o ,sys.x$kgldp d ,sys.x$kglcursor c WHERE o.inst_id = USERENV ('Instance') AND d.inst_id = USERENV ('Instance') AND c.inst_id = USERENV ('Instance') AND o.kglnaown = upper(nvl('&5',user)) AND o.kglnaobj = upper('&6') AND d.kglrfhdl = o.kglhdadr AND c.kglhdadr = d.kglhdadr) SELECT * FROM ( SELECT /*+ LEADING(a) USE_HASH(u) */ COUNT(*) totalseconds , ROUND(COUNT(*) / ((CAST(&4 AS DATE) - CAST(&3 AS DATE)) * 86400), 1) AAS , LPAD(ROUND(RATIO_TO_REPORT(COUNT(*)) OVER () * 100)||'%',5,' ')||' |' "%This" , &1 -- , SUM(CASE WHEN wait_class IS NULL THEN 1 ELSE 0 END) "CPU" -- , SUM(CASE WHEN wait_class ='User I/O' THEN 1 ELSE 0 END) "User I/O" -- , SUM(CASE WHEN wait_class ='Application' THEN 1 ELSE 0 END) "Application" -- , SUM(CASE WHEN wait_class ='Concurrency' THEN 1 ELSE 0 END) "Concurrency" -- , SUM(CASE WHEN wait_class ='Commit' THEN 1 ELSE 0 END) "Commit" -- , SUM(CASE WHEN wait_class ='Configuration' THEN 1 ELSE 0 END) "Configuration" -- , SUM(CASE WHEN wait_class ='Cluster' THEN 1 ELSE 0 END) "Cluster" -- , SUM(CASE WHEN wait_class ='Idle' THEN 1 ELSE 0 END) "Idle" -- , SUM(CASE WHEN wait_class ='Network' THEN 1 ELSE 0 END) "Network" -- , SUM(CASE WHEN wait_class ='System I/O' THEN 1 ELSE 0 END) "System I/O" -- , SUM(CASE WHEN wait_class ='Scheduler' THEN 1 ELSE 0 END) "Scheduler" -- , SUM(CASE WHEN wait_class ='Administrative' THEN 1 ELSE 0 END) "Administrative" -- , SUM(CASE WHEN wait_class ='Queueing' THEN 1 ELSE 0 END) "Queueing" -- , SUM(CASE WHEN wait_class ='Other' THEN 1 ELSE 0 END) "Other" , TO_CHAR(MIN(sample_time), 'YYYY-MM-DD HH24:MI:SS') first_seen , TO_CHAR(MAX(sample_time), 'YYYY-MM-DD HH24:MI:SS') last_seen -- , MAX(sql_exec_id) - MIN(sql_exec_id) FROM (SELECT a.* , TO_CHAR(CASE WHEN session_state = 'WAITING' THEN p1 ELSE null END, '0XXXXXXXXXXXXXXX') p1hex , TO_CHAR(CASE WHEN session_state = 'WAITING' THEN p2 ELSE null END, '0XXXXXXXXXXXXXXX') p2hex , TO_CHAR(CASE WHEN session_state = 'WAITING' THEN p3 ELSE null END, '0XXXXXXXXXXXXXXX') p3hex FROM gv$active_session_history a) a , dba_users u WHERE a.user_id = u.user_id (+) AND &2 AND sql_id IN (SELECT sql_id FROM sqla ) AND sample_time BETWEEN &3 AND &4 GROUP BY &1 ORDER BY TotalSeconds DESC , &1 ) WHERE ROWNUM <= 30 / $ cat dashtt.sql -------------------------------------------------------------------------------- -- -- File name: dashtop.sql -- Purpose: Display top ASH time (count of ASH samples) grouped by your -- specified dimensions -- -- Author: Tanel Poder -- Copyright: (c) http://blog.tanelpoder.com -- -- Usage: -- @dashtop <grouping_cols> <filters> <fromtime> <totime> -- -- Example: -- @dashtop username,sql_id session_type='FOREGROUND' sysdate-1/24 sysdate -- -- Other: -- This script uses only the AWR's DBA_HIST_ACTIVE_SESS_HISTORY, use -- @dashtop.sql for accessiong the V$ ASH view -- -------------------------------------------------------------------------------- COL "%This" FOR A6 --COL p1 FOR 99999999999999 --COL p2 FOR 99999999999999 --COL p3 FOR 99999999999999 COL p1text FOR A30 word_wrap COL p2text FOR A30 word_wrap COL p3text FOR A30 word_wrap COL p1hex FOR A17 COL p2hex FOR A17 COL p3hex FOR A17 with sqla as (SELECT /*+ MATERIALIZE ordered use_hash(d) use_hash(c) */ DISTINCT c.kglobt03 sql_id FROM sys.x$kglob o ,sys.x$kgldp d ,sys.x$kglcursor c WHERE o.inst_id = USERENV ('Instance') AND d.inst_id = USERENV ('Instance') AND c.inst_id = USERENV ('Instance') AND o.kglnaown = upper(nvl('&5',user)) AND o.kglnaobj = upper('&6') AND d.kglrfhdl = o.kglhdadr AND c.kglhdadr = d.kglhdadr) SELECT * FROM ( SELECT /*+ LEADING(a) USE_HASH(u) */ LPAD(ROUND(RATIO_TO_REPORT(COUNT(*)) OVER () * 100)||'%',5,' ') "%This" , &1 , 10 * COUNT(*) "TotalSeconds" -- , 10 * SUM(CASE WHEN wait_class IS NULL THEN 1 ELSE 0 END) "CPU" -- , 10 * SUM(CASE WHEN wait_class ='User I/O' THEN 1 ELSE 0 END) "User I/O" -- , 10 * SUM(CASE WHEN wait_class ='Application' THEN 1 ELSE 0 END) "Application" -- , 10 * SUM(CASE WHEN wait_class ='Concurrency' THEN 1 ELSE 0 END) "Concurrency" -- , 10 * SUM(CASE WHEN wait_class ='Commit' THEN 1 ELSE 0 END) "Commit" -- , 10 * SUM(CASE WHEN wait_class ='Configuration' THEN 1 ELSE 0 END) "Configuration" -- , 10 * SUM(CASE WHEN wait_class ='Cluster' THEN 1 ELSE 0 END) "Cluster" -- , 10 * SUM(CASE WHEN wait_class ='Idle' THEN 1 ELSE 0 END) "Idle" -- , 10 * SUM(CASE WHEN wait_class ='Network' THEN 1 ELSE 0 END) "Network" -- , 10 * SUM(CASE WHEN wait_class ='System I/O' THEN 1 ELSE 0 END) "System I/O" -- , 10 * SUM(CASE WHEN wait_class ='Scheduler' THEN 1 ELSE 0 END) "Scheduler" -- , 10 * SUM(CASE WHEN wait_class ='Administrative' THEN 1 ELSE 0 END) "Administrative" -- , 10 * SUM(CASE WHEN wait_class ='Queueing' THEN 1 ELSE 0 END) "Queueing" -- , 10 * SUM(CASE WHEN wait_class ='Other' THEN 1 ELSE 0 END) "Other" , TO_CHAR(MIN(sample_time), 'YYYY-MM-DD HH24:MI:SS') first_seen , TO_CHAR(MAX(sample_time), 'YYYY-MM-DD HH24:MI:SS') last_seen FROM (SELECT a.* , TO_CHAR(CASE WHEN session_state = 'ON CPU' THEN p1 ELSE null END, '0XXXXXXXXXXXXXXX') p1hex , TO_CHAR(CASE WHEN session_state = 'ON CPU' THEN p2 ELSE null END, '0XXXXXXXXXXXXXXX') p2hex , TO_CHAR(CASE WHEN session_state = 'ON CPU' THEN p3 ELSE null END, '0XXXXXXXXXXXXXXX') p3hex FROM dba_hist_active_sess_history a) a , dba_users u WHERE a.user_id = u.user_id (+) AND &2 AND sql_id IN (SELECT sql_id FROM sqla ) AND sample_time BETWEEN &3 AND &4 AND snap_id IN (SELECT snap_id FROM dba_hist_snapshot WHERE sample_time BETWEEN &3 AND &4) -- for partition pruning GROUP BY &1 ORDER BY "TotalSeconds" DESC , &1 ) WHERE ROWNUM <= 20 / --//简单测试: > @ dashtt sql_id,event 1=1 trunc(sysdate) trunc(sysdate)+1 xxxx_yyy ms_cf01 Total %This SQL_ID EVENT Seconds FIRST_SEEN LAST_SEEN ------ ------------- ---------------------------------------- --------- ------------------- ------------------- 32% fagcu20tqqc7x 90 2021-01-13 00:49:41 2021-01-13 10:43:53 25% abwrcfvwk3g18 70 2021-01-13 03:28:17 2021-01-13 09:46:57 21% g0zzq8wx5rjwa 60 2021-01-13 08:46:40 2021-01-13 10:22:41 14% fcqbzpqstq4ns 40 2021-01-13 08:35:19 2021-01-13 10:41:53 4% 01wwrnjjytb5z 10 2021-01-13 09:47:37 2021-01-13 09:47:37 4% 40dgpux1au2dx db file parallel read 10 2021-01-13 09:19:04 2021-01-13 09:19:04 6 rows selected.
[20210113]ashtop查询特定表的SQL语句2.txt
来源:这里教程网
时间:2026-03-03 16:21:40
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- Oracle如何删除表中重复记录保留第一条
Oracle如何删除表中重复记录保留第一条
26-03-03 - Oracle网络服务基础(二)之监听器与TNS配置管理
Oracle网络服务基础(二)之监听器与TNS配置管理
26-03-03 - ORACLE 数据库业务用户密码重置慎用特殊字符
ORACLE 数据库业务用户密码重置慎用特殊字符
26-03-03 - oracle优化之生产系统不改代码解决SQL性能问题的几种方法
oracle优化之生产系统不改代码解决SQL性能问题的几种方法
26-03-03 - Oracle网络服务基础(一)之监听器概念
Oracle网络服务基础(一)之监听器概念
26-03-03 - Oracle 21c新特性预览与日常管理相关的几个新特性
Oracle 21c新特性预览与日常管理相关的几个新特性
26-03-03 - ora-00279 ora-00289 ora-00280
ora-00279 ora-00289 ora-00280
26-03-03 - 深入解析 oracle drop table内部原理
深入解析 oracle drop table内部原理
26-03-03 - Oracle 9i 11g历史库升级迁移数据至19c CDB
Oracle 9i 11g历史库升级迁移数据至19c CDB
26-03-03 - Oracle 19c Database Configure the HTTPS Port for EM Express
