Skip to content

Commit 5290083

Browse files
committed
v1
1 parent 0726f6c commit 5290083

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

ash/sqlid_dbtime_buckets.sql

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
-- Copyright 2018 Tanel Poder. All rights reserved. More info at https://tanelpoder.com
2+
-- Licensed under the Apache License, Version 2.0. See LICENSE.txt for terms & conditions.
3+
4+
5+
COL approx_elapsed_time FOR A30
6+
7+
WITH ash AS (
8+
SELECT
9+
sql_id
10+
, session_id
11+
, sample_time
12+
, sample_time - CAST(MIN(sql_exec_start)
13+
OVER(PARTITION BY session_id,session_serial#,sql_exec_start,sql_exec_id)
14+
AS TIMESTAMP) elapsed_time
15+
, sql_exec_start
16+
, sql_exec_id
17+
, session_state
18+
, event
19+
, machine
20+
, module
21+
FROM
22+
v$active_session_history
23+
WHERE
24+
sql_id = '&1'
25+
AND &2
26+
AND sample_time BETWEEN &3 AND &4
27+
GROUP BY
28+
sql_id
29+
, session_id
30+
, session_serial#
31+
, sample_time
32+
, sql_exec_start
33+
, sql_exec_id
34+
, session_state
35+
, event
36+
, machine
37+
, module
38+
),
39+
longrunning AS (
40+
SELECT * FROM ash
41+
WHERE
42+
elapsed_time > INTERVAL '1' SECOND
43+
)
44+
SELECT
45+
sql_id
46+
, sql_exec_start
47+
-- an earlier analytic function already does the "partition by session_id,session_serial#"
48+
, MAX(elapsed_time) approx_elapsed_time
49+
, session_state
50+
, event
51+
, COUNT(*) seconds
52+
, COUNT(DISTINCT session_id) sesssions
53+
FROM longrunning
54+
GROUP BY
55+
sql_id
56+
, sql_exec_start
57+
, session_state
58+
, event
59+
ORDER BY
60+
sql_id
61+
, sql_exec_start
62+
, COUNT(*) DESC
63+
/
64+

0 commit comments

Comments
 (0)