2026-03-12 20:23:15
This commit is contained in:
100
tpt/ash/sqlid_activity.sql
Normal file
100
tpt/ash/sqlid_activity.sql
Normal file
@@ -0,0 +1,100 @@
|
||||
-- Copyright 2018 Tanel Poder. All rights reserved. More info at http://tanelpoder.com
|
||||
-- Licensed under the Apache License, Version 2.0. See LICENSE.txt for terms & conditions.
|
||||
|
||||
SET PAGESIZE 5000 LINESIZE 1000 TRIMSPOOL ON TRIMOUT ON TAB OFF
|
||||
|
||||
DEF sqlset_name="GPN_MON18"
|
||||
|
||||
VAR dbid NUMBER
|
||||
VAR inst_id NUMBER
|
||||
|
||||
COL bdate NEW_VALUE def_bdate
|
||||
COL edate NEW_VALUE def_edate
|
||||
|
||||
SET TERMOUT OFF
|
||||
|
||||
SELECT
|
||||
TO_CHAR(SYSDATE-1/24, 'YYYY-MM-DD HH24:MI') bdate
|
||||
, TO_CHAR(SYSDATE , 'YYYY-MM-DD HH24:MI') edate
|
||||
FROM
|
||||
dual
|
||||
/
|
||||
|
||||
SET TERMOUT ON
|
||||
|
||||
ACCEPT sqlid CHAR FORMAT A13 DEFAULT '%' PROMPT "Enter SQL ID [ % ]: "
|
||||
SPOOL sql_activity_&sqlid..txt
|
||||
|
||||
ACCEPT bdate DATE FORMAT 'YYYY-MM-DD HH24:MI' DEFAULT '&def_bdate' PROMPT "Enter begin time [&def_bdate]: "
|
||||
ACCEPT edate DATE FORMAT 'YYYY-MM-DD HH24:MI' DEFAULT '&def_edate' PROMPT "Enter end time [&def_edate]: "
|
||||
|
||||
PROMPT Spooling into sql_activity_&sqlid..txt
|
||||
|
||||
BEGIN
|
||||
SELECT inst_id, dbid INTO :inst_id, :dbid FROM gv$database;
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
SELECT
|
||||
TO_CHAR(sample_time, 'YYYY-MM-DD HH24')||':00' sample_hour
|
||||
, sql_id
|
||||
, sql_plan_hash_value
|
||||
, COUNT(*) * 10 seconds
|
||||
, ROUND(COUNT(*) * 10 / 3600, 2) AAS
|
||||
, COUNT(DISTINCT sql_exec_start||sql_exec_id) sampled_execs
|
||||
FROM
|
||||
dba_hist_active_sess_history
|
||||
WHERE
|
||||
dbid = :dbid
|
||||
-- AND instance_number = :inst_id
|
||||
AND sample_time BETWEEN TO_DATE('&bdate', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('&edate', 'YYYY-MM-DD HH24:MI:SS')
|
||||
AND sql_id LIKE '&sqlid'
|
||||
GROUP BY
|
||||
TO_CHAR(sample_time, 'YYYY-MM-DD HH24')||':00'
|
||||
, sql_id
|
||||
, sql_plan_hash_value
|
||||
ORDER BY
|
||||
sample_hour
|
||||
, sql_id
|
||||
/
|
||||
|
||||
SET PAGESIZE 0 HEADING OFF
|
||||
|
||||
PROMPT
|
||||
PROMPT =======================================================================================================
|
||||
PROMPT =========================================== DISPLAY_SQLSET ============================================
|
||||
PROMPT =======================================================================================================
|
||||
PROMPT
|
||||
|
||||
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_SQLSET('&sqlset_name', '&sqlid', null, 'TYPICAL +ALIAS +MEMSTATS +NOTE'));
|
||||
|
||||
PROMPT
|
||||
PROMPT =======================================================================================================
|
||||
PROMPT ============================================= DISPLAY_AWR =============================================
|
||||
PROMPT =======================================================================================================
|
||||
PROMPT
|
||||
|
||||
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_AWR('&sqlid', null, null, 'ALL'))
|
||||
/
|
||||
|
||||
PROMPT
|
||||
PROMPT =======================================================================================================
|
||||
PROMPT =============================== ASH Report for SQL ID &sqlid ===================================
|
||||
PROMPT =======================================================================================================
|
||||
PROMPT
|
||||
|
||||
SET VERIFY ON
|
||||
-- Oracle 10.2 requires the :inst_id to be present (and not NULL)
|
||||
SELECT * FROM TABLE(DBMS_WORKLOAD_REPOSITORY.ASH_REPORT_TEXT(:dbid, :inst_id, TO_DATE('&bdate', 'YYYY-MM-DD HH24:MI'), TO_DATE('&edate', 'YYYY-MM-DD HH24:MI'), null, null, null, DECODE('&sqlid', '%', NULL, '&sqlid')))
|
||||
WHERE exists (SELECT version FROM v$instance WHERE version LIKE '10%')
|
||||
UNION ALL
|
||||
SELECT * FROM TABLE(DBMS_WORKLOAD_REPOSITORY.ASH_REPORT_TEXT(:dbid, NULL, TO_DATE('&bdate', 'YYYY-MM-DD HH24:MI'), TO_DATE('&edate', 'YYYY-MM-DD HH24:MI'), null, null, null, DECODE('&sqlid', '%', NULL, '&sqlid')))
|
||||
WHERE exists (SELECT version FROM v$instance WHERE version LIKE '11%')
|
||||
/
|
||||
|
||||
SET VERIFY OFF
|
||||
SPOOL OFF
|
||||
SET TERMOUT ON PAGESIZE 5000 HEADING ON
|
||||
PROMPT Done. Output file: sql_activity_&sqlid..txt
|
||||
|
||||
Reference in New Issue
Block a user