2026-03-12 20:23:15
This commit is contained in:
88
vdh/list_optstat_tasks.sql
Normal file
88
vdh/list_optstat_tasks.sql
Normal file
@@ -0,0 +1,88 @@
|
||||
/* list the optimizer statistic operation tasks
|
||||
|
||||
The script will ask for an optionally filter on the operation id (can be listed via the list_optstat_history.sql script)
|
||||
and an optional filter on the target name (supports wildcards) and the start time (DD/MM/YYYY)
|
||||
It will also ask if the notes column needs to be displayed (this is a large xml, so best only when filtering)
|
||||
*/
|
||||
|
||||
set linesize 300
|
||||
set pages 50000
|
||||
|
||||
set verify off
|
||||
column target format a64
|
||||
column target_type format a25
|
||||
column nbr_blocks format 9G999G999G999
|
||||
column start_time_str format a30
|
||||
column end_time_str format a30
|
||||
column status format a15
|
||||
column duration format a15
|
||||
column estimated_cost format 999G999
|
||||
column notes_xml format a220
|
||||
|
||||
accept opid_filter number prompt "Filter on opertions id: "
|
||||
accept target_filter char prompt "Filter on target: "
|
||||
accept starttime_filter char prompt "Filter on start time (DD/MM/YYYY): "
|
||||
accept display_notes char default 'NO' prompt "Display notes column (YES|NO, default NO): "
|
||||
|
||||
var c_result refcursor
|
||||
set autoprint on
|
||||
set serveroutput on
|
||||
|
||||
set feedback off
|
||||
|
||||
DECLARE
|
||||
|
||||
l_filter varchar2(200);
|
||||
l_where varchar2(10);
|
||||
l_concat varchar2(10);
|
||||
l_query clob;
|
||||
|
||||
BEGIN
|
||||
|
||||
if &opid_filter != 0 then
|
||||
l_where := ' where ';
|
||||
l_filter := 'opid = &opid_filter';
|
||||
l_concat := ' and ';
|
||||
end if;
|
||||
|
||||
if '&target_filter' is not null then
|
||||
l_where := ' where ';
|
||||
l_filter := l_filter || l_concat || 'target like ''&target_filter''';
|
||||
l_concat := ' and ';
|
||||
end if;
|
||||
|
||||
if '&starttime_filter' is not null then
|
||||
l_where := ' where ';
|
||||
l_filter := l_filter || l_concat || 'start_time >= to_date(''&starttime_filter'', ''DD/MM/YYYY'')';
|
||||
end if;
|
||||
|
||||
l_query := q'[select
|
||||
opid,
|
||||
target,
|
||||
target_type,
|
||||
target_size nbr_blocks,
|
||||
to_char(start_time, 'DD/MM/YYYY HH24:MI:SS TZH:TZM') start_time_str,
|
||||
to_char(end_time, 'DD/MM/YYYY HH24:MI:SS TZH:TZM') end_time_str,
|
||||
cast ((end_time - start_time) as interval day(2) to second(0)) duration,
|
||||
status,
|
||||
estimated_cost,
|
||||
priority ]';
|
||||
|
||||
if upper('&display_notes') = 'YES'
|
||||
then
|
||||
l_query := l_query || q'[ ,xmlserialize(content xmltype(nvl2(notes, notes, '<notes/>')) as clob indent size = 2) notes_xml ]';
|
||||
end if;
|
||||
|
||||
l_query := l_query || 'from dba_optstat_operation_tasks' || l_where || l_filter || ' order by start_time, end_time';
|
||||
|
||||
open :c_result for
|
||||
l_query;
|
||||
|
||||
END;
|
||||
/
|
||||
|
||||
set feedback 6
|
||||
|
||||
undef opid_filter
|
||||
undef target_filter
|
||||
undef starttime_filter
|
||||
Reference in New Issue
Block a user