2026-03-12 20:23:15
This commit is contained in:
142
vg/sortusage.sql
Normal file
142
vg/sortusage.sql
Normal file
@@ -0,0 +1,142 @@
|
||||
@@header
|
||||
|
||||
/*
|
||||
*
|
||||
* Author : Vishal Gupta
|
||||
* Purpose : Display temporary space usage
|
||||
* Compability: 9.x, 10.x, 11.x
|
||||
* Parameters : 1 - INST_ID - Default Value - %, (Use % as wildcard)
|
||||
* 2 - TablespaceName - Default Value - %, (Use % as wildcard)
|
||||
* 3 - TOP_ROWCOUNT - Default Value - 30
|
||||
* 4 - WHERE CLAUSE - Default Value - ''
|
||||
*
|
||||
* Revision History:
|
||||
* ===================
|
||||
* Date Author Description
|
||||
* --------- ------------ -----------------------------------------
|
||||
* 01-Mar-13 Vishal Gupta Added schema level summary in output
|
||||
* 02-Jul-12 Vishal Gupta Added tablespace name as input
|
||||
* 15-Jun-12 Vishal Gupta FORMATted output
|
||||
* 26-May-04 Vishal Gupta Created
|
||||
*/
|
||||
|
||||
/************************************
|
||||
* INPUT PARAMETERS
|
||||
************************************/
|
||||
UNDEFINE INST_ID
|
||||
UNDEFINE TABLESPACE_NAME
|
||||
UNDEFINE TOP_ROWCOUNT
|
||||
UNDEFINE WHERE_CLAUSE
|
||||
|
||||
DEFINE INST_ID="&&1"
|
||||
DEFINE TABLESPACE_NAME="&&2"
|
||||
DEFINE TOP_ROWCOUNT="&&3"
|
||||
DEFINE WHERE_CLAUSE="&&4"
|
||||
|
||||
|
||||
COLUMN _INST_ID NEW_VALUE INST_ID NOPRINT
|
||||
COLUMN _TABLESPACE_NAME NEW_VALUE TABLESPACE_NAME NOPRINT
|
||||
COLUMN _TOP_ROWCOUNT NEW_VALUE TOP_ROWCOUNT NOPRINT
|
||||
COLUMN _TOP_ROWCOUNT_SCHEMA NEW_VALUE TOP_ROWCOUNT_SCHEMA NOPRINT
|
||||
COLUMN _WHERE_CLAUSE NEW_VALUE WHERE_CLAUSE NOPRINT
|
||||
|
||||
set term off
|
||||
SELECT DECODE('&&INST_ID','','%','&&INST_ID') "_INST_ID"
|
||||
, DECODE('&&TABLESPACE_NAME','','%','&&TABLESPACE_NAME') "_TABLESPACE_NAME"
|
||||
, TRIM(DECODE('&&TOP_ROWCOUNT','',30,'&&TOP_ROWCOUNT')) "_TOP_ROWCOUNT"
|
||||
, TRIM(ROUND(TRIM(DECODE('&&TOP_ROWCOUNT','',30,'&&TOP_ROWCOUNT'))/2)) "_TOP_ROWCOUNT_SCHEMA"
|
||||
, DECODE('&&WHERE_CLAUSE','','','&&WHERE_CLAUSE') "_WHERE_CLAUSE"
|
||||
FROM DUAL;
|
||||
set term on
|
||||
|
||||
|
||||
PROMPT ***************************************************************
|
||||
PROMPT * Input Parameters
|
||||
PROMPT * - INST_ID = '&&INST_ID'
|
||||
PROMPT * - TABLESPACE_NAME = '&&TABLESPACE_NAME'
|
||||
PROMPT * - TOP_ROWCOUNT = '&&TOP_ROWCOUNT'
|
||||
PROMPT * - WHERE_CLAUSE = '&&WHERE_CLAUSE'
|
||||
PROMPT ***************************************************************
|
||||
|
||||
|
||||
PROMPT
|
||||
PROMPT ***************************************************************
|
||||
PROMPT * TOP &&TOP_ROWCOUNT_SCHEMA Schemas using tempspace
|
||||
PROMPT ***************************************************************
|
||||
|
||||
COLUMN used HEADING "Size|(MB)" FORMAT 99,999,999
|
||||
COLUMN username FORMAT a20
|
||||
COLUMN tablespace HEADING "TablespaceName" FORMAT a20
|
||||
|
||||
SELECT *
|
||||
FROM
|
||||
(
|
||||
SELECT /*+ ORDERED */
|
||||
su.tablespace
|
||||
, s.username
|
||||
, SUM((su.BLOCKS * par.value ))/1024/1024 used
|
||||
FROM gv$sort_usage su
|
||||
JOIN gv$session s ON s.inst_id = su.inst_id AND su.session_addr = s.saddr AND su.session_num = s.serial#
|
||||
JOIN gv$system_parameter par ON su.inst_id = par.inst_id AND par.NAME = 'db_block_size'
|
||||
WHERE su.inst_id like DECODE('&&INST_ID','','%','&&INST_ID')
|
||||
AND su.tablespace LIKE DECODE('&&TABLESPACE_NAME','','%','&&TABLESPACE_NAME')
|
||||
&&WHERE_CLAUSE
|
||||
GROUP BY s.username , su.tablespace
|
||||
order by used desc
|
||||
)
|
||||
WHERE ROWNUM <= &&TOP_ROWCOUNT_SCHEMA
|
||||
/
|
||||
|
||||
PROMPT
|
||||
PROMPT
|
||||
PROMPT ***************************************************************
|
||||
PROMPT * TOP &&TOP_ROWCOUNT Sort Segment Usage (Ordered by Size)
|
||||
PROMPT ***************************************************************
|
||||
|
||||
|
||||
COLUMN used HEADING "Size|(MB)" FORMAT 9,999,999
|
||||
COLUMN segtype HEADING "Segment|Type" FORMAT a9
|
||||
COLUMN inst_id HEADING "I#" FORMAT 99
|
||||
COLUMN sid FORMAT 9999
|
||||
COLUMN serial# FORMAT 99999
|
||||
COLUMN logon_time HEADING "LogonTime" FORMAT a15
|
||||
COLUMN status FORMAT a10
|
||||
COLUMN spid FORMAT a6
|
||||
COLUMN machine FORMAT a20 TRUNCATE
|
||||
COLUMN program FORMAT a20 TRUNCATE
|
||||
COLUMN osuser FORMAT a20 TRUNCATE
|
||||
COLUMN sql_child_number HEADING "SQL|Child|No" FORMAT 99
|
||||
|
||||
SELECT *
|
||||
FROM
|
||||
(
|
||||
SELECT /*+ ORDERED */
|
||||
(su.BLOCKS * par.value )/1024/1024 used
|
||||
-- , su.EXTENTS
|
||||
, su.segtype
|
||||
, su.tablespace
|
||||
, s.sid
|
||||
, s.inst_id
|
||||
, to_char(s.logon_time,'DD-MON-YY HH24:MI') logon_time
|
||||
, s.status
|
||||
, p.spid
|
||||
, s.username
|
||||
, s.machine
|
||||
, s.program
|
||||
, s.osuser
|
||||
, s.sql_id
|
||||
, s.sql_child_number
|
||||
FROM gv$sort_usage su
|
||||
JOIN gv$session s ON s.inst_id = su.inst_id AND su.session_addr = s.saddr AND su.session_num = s.serial#
|
||||
JOIN gv$process p ON p.inst_id = s.inst_id AND p.addr = s.paddr
|
||||
JOIN gv$system_parameter par ON su.inst_id = par.inst_id AND par.NAME = 'db_block_size'
|
||||
WHERE su.inst_id like DECODE('&&INST_ID','','%','&&INST_ID')
|
||||
AND su.tablespace LIKE DECODE('&&TABLESPACE_NAME','','%','&&TABLESPACE_NAME')
|
||||
&&WHERE_CLAUSE
|
||||
order by 1 desc
|
||||
)
|
||||
WHERE ROWNUM <= DECODE('&&TOP_ROWCOUNT','',30,'&&TOP_ROWCOUNT')
|
||||
/
|
||||
|
||||
|
||||
@@footer
|
||||
Reference in New Issue
Block a user