Ai
1 Star 1 Fork 0

冯际成/Oracle_SQL_Scripts

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
perf_TimedEvents_EventMetric_60sec.sql 3.81 KB
一键复制 编辑 原始数据 按行查看 历史
Abdul mohammed 提交于 2016-02-06 08:58 +08:00 . Fri Feb 5 18:58:16 CST 2016
Prompt
prompt +-----------------------------------------------------------+
prompt | Wait Profile for last 60 second |
Prompt +-----------------------------------------------------------+
prompt
SELECT NULL TIME_INTERVAL, NULL EVENT, NULL ACT_SESS, NULL PERCENT, NULL TIME_WAITED_S,
NULL WAIT_COUNT, NULL AVG_WAIT_MS FROM DUAL WHERE 1 = 0
UNION ALL (
SELECT NULL TIME_INTERVAL, NULL EVENT, NULL ACT_SESS, NULL PERCENT, NULL TIME_WAITED_S,
NULL WAIT_COUNT, NULL AVG_WAIT_MS FROM DUAL WHERE 1 = 0
) UNION ALL ( SELECT * FROM (
WITH B_INFO AS
( SELECT
DECODE(INSTANCE_NUMBER, -1, USERENV('INSTANCE'), INSTANCE_NUMBER) INSTANCE_NUMBER,
EVENT,
MIN_WAIT_TIME_MS,
EXCLUDE_IDLE_EVENTS,
EXCLUDE_SYSTEM,
EXCLUDE_ADMINISTRATIVE,
AVG_RTT_US,
ORDER_BY
FROM
( SELECT
-1 INSTANCE_NUMBER,
'%' EVENT,
1 MIN_WAIT_TIME_MS,
'X' EXCLUDE_IDLE_EVENTS,
'X' EXCLUDE_SYSTEM,
'X' EXCLUDE_ADMINISTRATIVE,
400 AVG_RTT_US, /* adapt with system specific roundtrip time in micro seconds */
'TIME' ORDER_BY /* TIME, EVENT */
FROM
DUAL
)
)
SELECT
TO_CHAR(BEGIN_TIME, 'dd.mm.yyyy hh24:mi:ss') || ' - ' ||
TO_CHAR(END_TIME, 'dd.mm.yyyy hh24:mi:ss') TIME_INTERVAL,
EVENT,
TO_CHAR(ACTIVE_SESSIONS, 9990.99) ACT_SESS,
TO_CHAR(RATIO_TO_REPORT(ACTIVE_SESSIONS) OVER () * 100, 990.99) PERCENT,
TO_CHAR(TIME_WAITED_CS / 100, 999999990.99) TIME_WAITED_S,
TO_CHAR(WAIT_COUNT, 999999990) WAIT_COUNT,
TO_CHAR(DECODE(WAIT_COUNT, 0, 0, TIME_WAITED_CS * 10 / WAIT_COUNT), 9999990.99) AVG_WAIT_MS
FROM
( SELECT
EM.BEGIN_TIME,
EM.END_TIME,
EN.NAME EVENT,
EM.TIME_WAITED / 100 / ( EM.END_TIME - EM.BEGIN_TIME ) / 86400 ACTIVE_SESSIONS,
EM.TIME_WAITED TIME_WAITED_CS,
EM.WAIT_COUNT,
BI.ORDER_BY
FROM
B_INFO BI,
GV$EVENTMETRIC EM,
GV$EVENT_NAME EN
WHERE
BI.INSTANCE_NUMBER = EM.INST_ID AND
EM.INST_ID = EN.INST_ID AND
EN.NAME LIKE BI.EVENT AND
EM.EVENT# = EN.EVENT# AND
( BI.MIN_WAIT_TIME_MS = -1 OR TIME_WAITED * 10 >= BI.MIN_WAIT_TIME_MS ) AND
( BI.EXCLUDE_IDLE_EVENTS != 'X' OR EN.WAIT_CLASS != 'Idle' ) AND
( BI.EXCLUDE_SYSTEM = ' ' OR
EN.WAIT_CLASS != 'System I/O'
) AND
( BI.EXCLUDE_ADMINISTRATIVE = ' ' OR
( EN.WAIT_CLASS != 'Administrative' AND
EN.NAME NOT IN
( 'ARCH wait on SENDREQ',
'LNS wait on SENDREQ',
'LGWR-LNS wait on channel',
'remote db file write'
)
)
)
UNION ALL
( SELECT
SM.BEGIN_TIME,
SM.END_TIME,
'CPU' METRIC_NAME,
SM.VALUE / 100 / ( SM.END_TIME - SM.BEGIN_TIME ) / 86400 ACTIVE_SESSIONS,
SM.VALUE TIME_WAITED_CS,
NULL WAIT_COUNT,
BI.ORDER_BY
FROM
B_INFO BI,
GV$SYSMETRIC SM
WHERE
BI.INSTANCE_NUMBER = SM.INST_ID AND
SM.GROUP_ID = 2 AND
SM.METRIC_NAME IN ( /* 'CPU Usage Per Sec', */ 'Host CPU Usage Per Sec') AND
( BI.MIN_WAIT_TIME_MS = -1 OR SM.VALUE * 10 >= BI.MIN_WAIT_TIME_MS )
)
UNION ALL
( SELECT
SM.BEGIN_TIME,
SM.END_TIME,
'Network' METRIC_NAME,
SM.VALUE * AVG_RTT_US / 1000000 ACTIVE_SESSIONS,
SM.VALUE * ( SM.END_TIME - SM.BEGIN_TIME ) * 86400 * AVG_RTT_US / 10000 TIME_WAITED_CS,
SM.VALUE * ( SM.END_TIME - SM.BEGIN_TIME ) * 86400 WAIT_COUNT,
BI.ORDER_BY
FROM
B_INFO BI,
GV$SYSMETRIC SM
WHERE
BI.INSTANCE_NUMBER = SM.INST_ID AND
SM.GROUP_ID = 2 AND
SM.METRIC_NAME = 'User Calls Per Sec' AND
( BI.MIN_WAIT_TIME_MS = -1 OR SM.VALUE * 10 >= BI.MIN_WAIT_TIME_MS )
)
)
ORDER BY
DECODE(ORDER_BY, 'TIME', TIME_WAITED_CS, 0) DESC,
DECODE(ORDER_BY, 'EVENT', EVENT, NULL)
));
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/sapall/Oracle_SQL_Scripts.git
git@gitee.com:sapall/Oracle_SQL_Scripts.git
sapall
Oracle_SQL_Scripts
Oracle_SQL_Scripts
master

搜索帮助