Friday, September 27, 2013

Query to check historical change in parameter values in database

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('&parameter_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('&parameter_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