One of my colleague and dear friend shared an excellent query he came across while browsing.
This query shows any historical change in database parameter values.
Query :
set linesize 155
col time for a15
col parameter_name format a50
col old_value format a30
col new_value format a30
break on instance skip 3
select instance_number instance, snap_id, time, parameter_name, old_value, new_value from (
select a.snap_id,to_char(end_interval_time,'DD-MON-YY HH24:MI') TIME, a.instance_number, parameter_name, value new_value,
lag(parameter_name,1) over (partition by parameter_name, a.instance_number order by a.snap_id) old_pname,
lag(value,1) over (partition by parameter_name, a.instance_number order by a.snap_id) old_value ,
decode(substr(parameter_name,1,2),'__',2,1) calc_flag
from dba_hist_parameter a, dba_Hist_snapshot b , v$instance v
where a.snap_id=b.snap_id
and a.instance_number=b.instance_number
and parameter_name like nvl('¶meter_name',parameter_name)
and a.instance_number like nvl('&instance_number',v.instance_number)
)
where
new_value != old_value
and calc_flag not in (decode('&show_calculated','Y',3,2))
order by 1,2
/
Run Example:
Enter value for parameter_name: parallel_max_servers
old 9: and parameter_name like nvl('¶meter_name',parameter_name)
new 9: and parameter_name like nvl('parallel_max_servers',parameter_name)
Enter value for instance_number:
old 10: and a.instance_number like nvl('&instance_number',v.instance_number)
new 10: and a.instance_number like nvl('',v.instance_number)
Enter value for show_calculated: Y
old 14: and calc_flag not in (decode('&show_calculated','Y',3,2))
new 14: and calc_flag not in (decode('Y','Y',3,2))
INSTANCE SNAP_ID TIME PARAMETER_NAME OLD_VALUE NEW_VALUE
---------- ---------- --------------- -------------------------------------------------- ------------------------------ ------------------------------
1 22258 17-NOV-10 00:00 parallel_max_servers 320 160
47278 24-SEP-13 17:00 parallel_max_servers 160 320
47335 27-SEP-13 02:00 parallel_max_servers 320 160
This query shows any historical change in database parameter values.
Query :
set linesize 155
col time for a15
col parameter_name format a50
col old_value format a30
col new_value format a30
break on instance skip 3
select instance_number instance, snap_id, time, parameter_name, old_value, new_value from (
select a.snap_id,to_char(end_interval_time,'DD-MON-YY HH24:MI') TIME, a.instance_number, parameter_name, value new_value,
lag(parameter_name,1) over (partition by parameter_name, a.instance_number order by a.snap_id) old_pname,
lag(value,1) over (partition by parameter_name, a.instance_number order by a.snap_id) old_value ,
decode(substr(parameter_name,1,2),'__',2,1) calc_flag
from dba_hist_parameter a, dba_Hist_snapshot b , v$instance v
where a.snap_id=b.snap_id
and a.instance_number=b.instance_number
and parameter_name like nvl('¶meter_name',parameter_name)
and a.instance_number like nvl('&instance_number',v.instance_number)
)
where
new_value != old_value
and calc_flag not in (decode('&show_calculated','Y',3,2))
order by 1,2
/
Run Example:
Enter value for parameter_name: parallel_max_servers
old 9: and parameter_name like nvl('¶meter_name',parameter_name)
new 9: and parameter_name like nvl('parallel_max_servers',parameter_name)
Enter value for instance_number:
old 10: and a.instance_number like nvl('&instance_number',v.instance_number)
new 10: and a.instance_number like nvl('',v.instance_number)
Enter value for show_calculated: Y
old 14: and calc_flag not in (decode('&show_calculated','Y',3,2))
new 14: and calc_flag not in (decode('Y','Y',3,2))
INSTANCE SNAP_ID TIME PARAMETER_NAME OLD_VALUE NEW_VALUE
---------- ---------- --------------- -------------------------------------------------- ------------------------------ ------------------------------
1 22258 17-NOV-10 00:00 parallel_max_servers 320 160
47278 24-SEP-13 17:00 parallel_max_servers 160 320
47335 27-SEP-13 02:00 parallel_max_servers 320 160
No comments:
Post a Comment