2026-03-12 20:23:15
This commit is contained in:
48
tpt/ash/sqlexec_longer_than.sql
Normal file
48
tpt/ash/sqlexec_longer_than.sql
Normal file
@@ -0,0 +1,48 @@
|
||||
WITH ash AS (
|
||||
SELECT
|
||||
sql_id
|
||||
, sample_time
|
||||
, sample_time - CAST(MIN(sql_exec_start) OVER(PARTITION BY session_id,session_serial#,sql_exec_start,sql_exec_id) AS TIMESTAMP) elapsed_time
|
||||
, sql_exec_start
|
||||
, sql_exec_id
|
||||
, session_state
|
||||
, event
|
||||
FROM
|
||||
v$active_session_history
|
||||
WHERE
|
||||
sql_id = '&1'
|
||||
--AND sample_time BETWEEN TIMESTAMP'2020-02-26 14:45:17' AND TIMESTAMP'2020-02-26 15:15:17'
|
||||
GROUP BY
|
||||
sql_id
|
||||
, session_id
|
||||
, session_serial#
|
||||
, sample_time
|
||||
, sql_exec_start
|
||||
, sql_exec_id
|
||||
, session_state
|
||||
, event
|
||||
),
|
||||
longrunning AS (
|
||||
SELECT * FROM ash
|
||||
WHERE
|
||||
elapsed_time > INTERVAL '1' SECOND
|
||||
)
|
||||
SELECT
|
||||
sql_id
|
||||
, sql_exec_start
|
||||
, MAX(elapsed_time) -- an earlier analytic function already does the "partition by session_id,session_serial#"
|
||||
, session_state
|
||||
, event
|
||||
, COUNT(*) seconds
|
||||
FROM longrunning
|
||||
GROUP BY
|
||||
sql_id
|
||||
, sql_exec_start
|
||||
, session_state
|
||||
, event
|
||||
ORDER BY
|
||||
sql_id
|
||||
, sql_exec_start
|
||||
, COUNT(*) DESC
|
||||
/
|
||||
|
||||
Reference in New Issue
Block a user