2026-03-12 20:23:15
This commit is contained in:
101
Kevin_Meade/showmyscanrates.sql
Normal file
101
Kevin_Meade/showmyscanrates.sql
Normal file
@@ -0,0 +1,101 @@
|
||||
--clear breaks
|
||||
--clear computes
|
||||
--clear columns
|
||||
col time_remaining head 'Seconds|Remaining'
|
||||
col scanned_blocks head 'Scanned Blocks|or Indexes'
|
||||
col all_blocks head 'All Blocks|or Indexes'
|
||||
col blocks_remaining head 'Blocks|or Indexes|Remaining' noprint
|
||||
col opname format a16
|
||||
col target format a40
|
||||
col username format a15
|
||||
col MB_per_Second form 990.0 head 'MB/s'
|
||||
col pct_scanned head '%Scanned' format 990.00
|
||||
col predicted_runtime_seconds head 'Estmd.|Runtime|Seconds'
|
||||
col total_blocks head 'Total|Blocks|or|Indexes'
|
||||
col sid format 99990
|
||||
col block_size format 99990 head 'Block|Size'
|
||||
col id_passes_temp format a25
|
||||
break on inst_id skip page
|
||||
|
||||
with
|
||||
scan_data as (
|
||||
select
|
||||
to_number(
|
||||
substr(a.message
|
||||
,instr(a.message,': ',1,2)+2
|
||||
,instr(a.message,' out of ',1,1)-instr(a.message,': ',1,2)-1
|
||||
)
|
||||
)
|
||||
/ to_number(
|
||||
substr(a.message
|
||||
,instr(a.message,' out of ',1,1)+8
|
||||
,instr(a.message,' ',instr(a.message,' out of ',1,1)+8)-instr(a.message,' out of ',1,1)-7
|
||||
)
|
||||
) *100 pct_scanned
|
||||
, to_number(
|
||||
substr(a.message
|
||||
,instr(a.message,' out of ',1,1)+8
|
||||
,instr(a.message,' ',instr(a.message,' out of ',1,1)+8)-instr(a.message,' out of ',1,1)-7
|
||||
)
|
||||
)
|
||||
- to_number(
|
||||
substr(a.message
|
||||
,instr(a.message,': ',1,2)+2
|
||||
,instr(a.message,' out of ',1,1)-instr(a.message,': ',1,2)-1
|
||||
)
|
||||
) blocks_remaining
|
||||
, a.time_remaining
|
||||
, a.opname
|
||||
, to_number(b.value) block_size
|
||||
, a.target
|
||||
, a.sid
|
||||
, a.inst_id
|
||||
, a.username
|
||||
, a.sql_hash_value
|
||||
from (
|
||||
select
|
||||
replace(gv$session_longops.message,'RMAN:','RMAN') message
|
||||
, gv$session_longops.time_remaining
|
||||
, gv$session_longops.opname
|
||||
, nvl(gv$session_longops.target,replace(gv$session_longops.target_desc,'Table ')) target
|
||||
, gv$session_longops.sid
|
||||
, gv$session_longops.inst_id
|
||||
, gv$session_longops.username
|
||||
, gv$session_longops.sql_hash_value
|
||||
from gv$session_longops
|
||||
, gv$session
|
||||
where gv$session_longops.sid = gv$session.sid
|
||||
and gv$session_longops.inst_id = gv$session.inst_id
|
||||
and gv$session_longops.sid = gv$session.sid
|
||||
and gv$session_longops.serial# = gv$session.serial#
|
||||
and gv$session_longops.time_remaining > 0
|
||||
and gv$session_longops.username = user
|
||||
) a
|
||||
,(select value from gv$parameter where name = 'db_block_size' and rownum = 1) b
|
||||
)
|
||||
select
|
||||
scan_data.inst_id
|
||||
, round(blocks_remaining*block_size/1024/1024/time_remaining,1) MB_per_Second
|
||||
, scan_data.time_remaining
|
||||
, round(time_remaining/(1-pct_scanned/100)) predicted_runtime_seconds
|
||||
, scan_data.pct_scanned
|
||||
, scan_data.blocks_remaining
|
||||
, round(blocks_remaining/(1-pct_scanned/100)) total_blocks
|
||||
, scan_data.opname
|
||||
, scan_data.BLOCK_SIZE
|
||||
, scan_data.target
|
||||
, (
|
||||
select
|
||||
max(operation_id)||':'||DECODE(MAX(NUMBER_PASSES),0,'OPTIMAL',1,'ONE-PASS',NULL,NULL,'MULTI-PASS('||max(number_passes)||')')||DECODE(max(TEMPSEG_SIZE),NULL,NULL,','||round(max(TEMPSEG_SIZE)/1024/1024)||'M')
|
||||
from gv$sql_workarea_active
|
||||
where gv$sql_workarea_active.sid = scan_data.sid
|
||||
and gv$sql_workarea_active.inst_id = scan_data.inst_id
|
||||
-- and scan_data.opname in ('Hash Join','Sort Output')
|
||||
-- and gv$sql_workarea_active.OPERATION_TYPE in ('HASH-JOIN','SORT','WINDOW (SORT)','GROUP BY (SORT)')
|
||||
) id_passes_temp
|
||||
, scan_data.sid
|
||||
, scan_data.username
|
||||
, scan_data.sql_hash_value
|
||||
from scan_data
|
||||
order by inst_id,username,sid,time_remaining
|
||||
/
|
||||
Reference in New Issue
Block a user