2026-03-12 20:23:15
This commit is contained in:
112
vg/awr_pgausage.sql
Normal file
112
vg/awr_pgausage.sql
Normal file
@@ -0,0 +1,112 @@
|
||||
@@header
|
||||
|
||||
/*
|
||||
*
|
||||
* Author : Vishal Gupta
|
||||
* Purpose : Display instance level PGA usage from AWR Repository
|
||||
* Compability: 10.x, 11.x
|
||||
* Parameters : 1 - DAYS - Default Value - 7
|
||||
* 2 - INST_ID - Default Value - %, (Use % as wildcard)
|
||||
*
|
||||
* Revision History:
|
||||
* ===================
|
||||
* Date Author Description
|
||||
* --------- ------------ -----------------------------------------
|
||||
* 30-Sep-13 Vishal Gupta Created
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/************************************
|
||||
* INPUT PARAMETERS
|
||||
************************************/
|
||||
UNDEFINE DAYS
|
||||
UNDEFINE INST_ID
|
||||
|
||||
DEFINE DAYS="&&1"
|
||||
DEFINE INST_ID="&&2"
|
||||
|
||||
|
||||
set term off
|
||||
COLUMN _INST_ID NEW_VALUE INST_ID NOPRINT
|
||||
COLUMN _DAYS NEW_VALUE DAYS NOPRINT
|
||||
SELECT TRIM(DECODE('&&DAYS','',7,'&&DAYS')) "_DAYS"
|
||||
, DECODE('&&INST_ID','','%','&&INST_ID') "_INST_ID"
|
||||
FROM DUAL;
|
||||
set term on
|
||||
|
||||
/************************************
|
||||
* CONFIGURATION PARAMETERS
|
||||
************************************/
|
||||
|
||||
DEFINE BYTES_LARGE_FORMAT="9,999,999"
|
||||
DEFINE BYTES_FORMAT="99,999"
|
||||
--DEFINE BYTES_DIVIDER="1024"
|
||||
--DEFINE BYTES_HEADING="KB"
|
||||
DEFINE BYTES_DIVIDER="1024/1024"
|
||||
DEFINE BYTES_HEADING="MB"
|
||||
--DEFINE BYTES_DIVIDER="1024/1024/1024"
|
||||
--DEFINE BYTES_HEADING="GB"
|
||||
|
||||
|
||||
|
||||
PROMPT *-------------------------------------------------------------------*
|
||||
PROMPT * I N S T A N C E L E V E L P G A U S A G E S U M M A R Y *
|
||||
PROMPT * (From AWR Repository) *
|
||||
PROMPT * *
|
||||
PROMPT * Input Parameters *
|
||||
PROMPT * - Days = '&&DAYS'
|
||||
PROMPT * - INST_ID = '&&INST_ID'
|
||||
PROMPT *-------------------------------------------------------------------*
|
||||
|
||||
|
||||
COLUMN seperator HEADING "!|!|!" FORMAT a1
|
||||
|
||||
COLUMN total_allocated HEADING "Total|Alloc|(&&BYTES_HEADING)" FORMAT &&BYTES_LARGE_FORMAT
|
||||
COLUMN freeable_allocated HEADING "Freeable|Alloc|(&&BYTES_HEADING)" FORMAT &&BYTES_FORMAT
|
||||
COLUMN sql_allocated HEADING "SQL|Alloc|(&&BYTES_HEADING)" FORMAT &&BYTES_FORMAT
|
||||
COLUMN plsql_allocated HEADING "PL/SQL|Alloc|(&&BYTES_HEADING)" FORMAT &&BYTES_FORMAT
|
||||
COLUMN olap_allocated HEADING "OLAP|Alloc|(&&BYTES_HEADING)" FORMAT &&BYTES_FORMAT
|
||||
COLUMN java_allocated HEADING "Java|Alloc|(&&BYTES_HEADING)" FORMAT &&BYTES_FORMAT
|
||||
COLUMN other_allocated HEADING "Other|Alloc|(&&BYTES_HEADING)" FORMAT &&BYTES_FORMAT
|
||||
|
||||
COLUMN total_used HEADING "Total|Used|(&&BYTES_HEADING)" FORMAT &&BYTES_LARGE_FORMAT
|
||||
COLUMN freeable_used HEADING "Freeable|Used|(&&BYTES_HEADING)" FORMAT &&BYTES_FORMAT
|
||||
COLUMN sql_used HEADING "SQL|Used|(&&BYTES_HEADING)" FORMAT &&BYTES_FORMAT
|
||||
COLUMN plsql_used HEADING "PL/SQL|Used|(&&BYTES_HEADING)" FORMAT &&BYTES_FORMAT
|
||||
COLUMN olap_used HEADING "OLAP|Used|(&&BYTES_HEADING)" FORMAT &&BYTES_FORMAT
|
||||
COLUMN java_used HEADING "Java|Used|(&&BYTES_HEADING)" FORMAT &&BYTES_FORMAT
|
||||
COLUMN other_used HEADING "Other|Used|(&&BYTES_HEADING)" FORMAT &&BYTES_FORMAT
|
||||
|
||||
COLUMN end_interval_time HEADING "Snap Time" FORMAT a15
|
||||
COLUMN instance_number HEADING "Instance" FORMAT 9999999
|
||||
|
||||
SELECT /*+ USE_NL(d s p) */
|
||||
TO_CHAR(TRUNC(s.end_interval_time,'MI'),'DD-MON-YY HH24:MI') end_interval_time
|
||||
, s.instance_number
|
||||
, ROUND(SUM(p.allocated_total)/ &&BYTES_DIVIDER) total_allocated
|
||||
, ROUND(SUM(p.used_total)/ &&BYTES_DIVIDER) total_used
|
||||
, ROUND(MAX(DECODE(p.category,'Freeable',p.allocated_total,0))/ &&BYTES_DIVIDER) freeable_allocated
|
||||
, ROUND(MAX(DECODE(p.category,'Freeable',p.used_total,0))/ &&BYTES_DIVIDER) freeable_used
|
||||
, ROUND(MAX(DECODE(p.category,'SQL',p.allocated_total,0))/ &&BYTES_DIVIDER) sql_allocated
|
||||
, ROUND(MAX(DECODE(p.category,'SQL',p.used_total,0))/ &&BYTES_DIVIDER) sql_used
|
||||
, ROUND(MAX(DECODE(p.category,'PL/SQL',p.allocated_total,0))/ &&BYTES_DIVIDER) plsql_allocated
|
||||
, ROUND(MAX(DECODE(p.category,'PL/SQL',p.used_total,0))/ &&BYTES_DIVIDER) plsql_used
|
||||
, ROUND(MAX(DECODE(p.category,'OLAP',p.allocated_total,0))/ &&BYTES_DIVIDER) olap_allocated
|
||||
, ROUND(MAX(DECODE(p.category,'OLAP',p.used_total,0))/ &&BYTES_DIVIDER) olap_used
|
||||
, ROUND(MAX(DECODE(p.category,'Other',p.allocated_total,0))/ &&BYTES_DIVIDER) other_allocated
|
||||
, ROUND(MAX(DECODE(p.category,'Other',p.used_total,0))/ &&BYTES_DIVIDER) other_used
|
||||
FROM dba_hist_snapshot s
|
||||
JOIN v$database d ON s.dbid = d.dbid
|
||||
JOIN dba_hist_process_mem_summary p ON p.dbid = s.dbid
|
||||
AND p.instance_number = s.instance_number
|
||||
AND p.snap_id = s.snap_id
|
||||
WHERE s.end_interval_time > sysdate - &&DAYS
|
||||
AND s.instance_number LIKE '&&INST_ID'
|
||||
GROUP BY TRUNC(s.end_interval_time,'MI')
|
||||
, s.instance_number
|
||||
ORDER BY TRUNC(s.end_interval_time,'MI')
|
||||
, s.instance_number
|
||||
;
|
||||
|
||||
@@footer
|
||||
Reference in New Issue
Block a user