2026-03-12 20:23:15
This commit is contained in:
43
tpt/ash/asqlflame.sql
Normal file
43
tpt/ash/asqlflame.sql
Normal file
@@ -0,0 +1,43 @@
|
||||
-- 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.
|
||||
|
||||
-- prototype script for displaying execution plan profile as a flame chart
|
||||
-- @sqlflame.sql <sqlid> <child#>
|
||||
|
||||
SET HEADING OFF LINESIZE 32767 PAGESIZE 0 TRIMSPOOL ON TRIMOUT ON LONG 9999999 VERIFY OFF LONGCHUNKSIZE 100000 FEEDBACK OFF APPINFO OFF
|
||||
SET TERMOUT OFF
|
||||
--SET TIMING OFF
|
||||
|
||||
WITH sq AS (
|
||||
SELECT /*+ MATERIALIZE */
|
||||
sp.id, sp.parent_id, sp.operation, sp.options
|
||||
, sp.object_owner, sp.object_name, ss.last_elapsed_time, ss.elapsed_time
|
||||
FROM v$sql_plan_statistics ss, v$sql_plan sp
|
||||
WHERE
|
||||
sp.sql_id=ss.sql_id
|
||||
AND sp.child_number=ss.child_number
|
||||
AND sp.address=ss.address
|
||||
AND sp.id=ss.operation_id
|
||||
AND sp.sql_id='&1'
|
||||
AND sp.child_number=&2
|
||||
)
|
||||
SELECT
|
||||
'0 - SELECT STATEMENT'||TRIM(SYS_CONNECT_BY_PATH(id||' - '||operation||NVL2(options,' '||options,NULL)||NVL2(object_owner||object_name, ' ['||object_owner||'.'||object_name||']', NULL), ';'))||' '||TRIM(ROUND(elapsed_time/1000))
|
||||
FROM
|
||||
sq
|
||||
CONNECT BY
|
||||
parent_id = PRIOR id
|
||||
START WITH parent_id = 0
|
||||
.
|
||||
|
||||
spool $HOME/sqlflame_stacks.txt
|
||||
/
|
||||
spool off
|
||||
|
||||
|
||||
SET TERMOUT ON HEADING ON PAGESIZE 5000 LINESIZE 999 FEEDBACK ON
|
||||
--SET TIMING ON
|
||||
|
||||
HOST $HOME/dev/FlameGraph/flamegraph.pl --countname=Milliseconds --title="sql_id=&1" $HOME/sqlflame_stacks.txt > $HOME/sqlflame_&1..svg
|
||||
HOST OPEN $HOME/sqlflame_&1..svg
|
||||
|
||||
Reference in New Issue
Block a user