2026-03-12 20:23:15
This commit is contained in:
105
vg/awr_parameter2.sql
Normal file
105
vg/awr_parameter2.sql
Normal file
@@ -0,0 +1,105 @@
|
||||
@@header
|
||||
|
||||
/*
|
||||
*
|
||||
* Author : Vishal Gupta
|
||||
* Purpose : Display database parameter changes from AWR Repository
|
||||
* Parameters : 1 - Parameter Name (Use % as wild card and \ as escape character)
|
||||
* 2 - Instance Number ( Use % to query for all instances)
|
||||
* 3 - Number of days to query ( Default 30)
|
||||
*
|
||||
* Revision History:
|
||||
* ===================
|
||||
* Date Author Description
|
||||
* --------- ------------ -----------------------------------------
|
||||
* 02-Nov-13 Vishal Gupta Modified to use multiple value view
|
||||
* (DBA_HIST_PARAMETER -> DBA_HIST_MVPARAMETER)
|
||||
* 05-Jul-12 Vishal Gupta Created
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/************************************
|
||||
* INPUT PARAMETERS
|
||||
************************************/
|
||||
VARIABLE PARAM_NAME VARCHAR2(100)
|
||||
VARIABLE INST_ID VARCHAR2(100)
|
||||
VARIABLE DAYS VARCHAR2(100)
|
||||
|
||||
BEGIN
|
||||
:PARAM_NAME:= '&&1';
|
||||
:INST_ID := '&&2';
|
||||
:DAYS := '&&3';
|
||||
:PARAM_NAME := CASE WHEN NVL(:PARAM_NAME,'x') = 'x' THEN '%' ELSE :PARAM_NAME END;
|
||||
:INST_ID := CASE WHEN NVL(:INST_ID,'x') = 'x' THEN '%' ELSE :INST_ID END;
|
||||
:DAYS := CASE WHEN NVL(:DAYS,'x') = 'x' THEN '7' ELSE :DAYS END;
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
set head off
|
||||
SELECT '**********************************************' || chr(10) ||
|
||||
'* init.ora Parameter Change History' || chr(10) ||
|
||||
'* (From AWR Repository)' || chr(10) ||
|
||||
'*' || chr(10) ||
|
||||
'* Input Parameters' || chr(10) ||
|
||||
'* - Parameter Name = "' || :PARAM_NAME || '"' || chr(10) ||
|
||||
'* - Instance# = "' || :INST_ID || '"' || chr(10) ||
|
||||
'* - Days = "' || :DAYS || '"' || chr(10) ||
|
||||
'**********************************************' || chr(10) ||
|
||||
''
|
||||
FROM DUAL;
|
||||
set head on
|
||||
|
||||
|
||||
COLUMN end_interval_time HEADING "Snapshot Time" FORMAT a18
|
||||
COLUMN instance_number HEADING "I#" FORMAT 99
|
||||
COLUMN parameter_name HEADING "ParameterName" FORMAT a30
|
||||
COLUMN value HEADING "Current Value" FORMAT a50
|
||||
COLUMN prev_value HEADING "Previous Value" FORMAT a50
|
||||
|
||||
|
||||
WITH snapshots
|
||||
AS
|
||||
(
|
||||
SELECT s.dbid
|
||||
, s.instance_number
|
||||
, s.snap_id
|
||||
, s.end_interval_time
|
||||
, lag(s.snap_id) OVER (PARTITION BY s.dbid, s.instance_number
|
||||
ORDER BY s.dbid, s.instance_number, s.snap_id) prev_snap_id
|
||||
FROM v$database d
|
||||
JOIN dba_hist_snapshot s ON s.dbid = d.dbid
|
||||
WHERE s.end_interval_time > SYSDATE - :DAYS - 5/24 -- Check for 5 extra hours in past
|
||||
AND s.instance_number LIKE :INST_ID
|
||||
)
|
||||
select TO_CHAR(s.end_interval_time,'DD-MON-YY HH24:MI:SS') end_interval_time
|
||||
, p.instance_number
|
||||
, pn.parameter_name
|
||||
--, p.ordinal
|
||||
, p.VALUE
|
||||
, prev.value prev_value
|
||||
FROM snapshots s
|
||||
JOIN dba_hist_parameter_name pn ON s.dbid = pn.dbid
|
||||
-- multi value parameter view
|
||||
LEFT OUTER JOIN dba_hist_mvparameter prev ON prev.dbid = s.dbid
|
||||
AND prev.instance_number = s.instance_number
|
||||
AND prev.snap_id = s.prev_snap_id
|
||||
AND prev.parameter_hash = pn.parameter_hash
|
||||
OUTER JOIN dba_hist_mvparameter p ON p.dbid = s.dbid
|
||||
AND p.instance_number = s.instance_number
|
||||
AND p.snap_id = s.snap_id
|
||||
AND p.parameter_hash = pn.parameter_hash
|
||||
AND NVL(p.value,'x') = NVL(prev.value,'x')
|
||||
WHERE NVL(pn.parameter_name,'x') LIKE :PARAM_NAME
|
||||
--AND REPLACE(pn.parameter_name,'_','!') NOT LIKE '!!%' -- Filter AMM or ASMM modified parameters if in AWR.
|
||||
AND pn.parameter_name NOT LIKE '\_\_%' ESCAPE '\' -- Filter AMM or ASMM modified parameters if in AWR.
|
||||
AND NVL(p.VALUE,'x') NOT LIKE '%SYS.KUPC$%' -- Ignore DataPump export/import service name change
|
||||
AND NVL(p.value,'x') <> NVL(prev.value,'x')
|
||||
ORDER BY TO_DATE(TO_CHAR(s.end_interval_time,'DD-MON-YY HH24:MI'),'DD-MON-YY HH24:MI')
|
||||
, pn.parameter_name
|
||||
, s.instance_number
|
||||
;
|
||||
|
||||
@@footer
|
||||
Reference in New Issue
Block a user