Temp Tablespace Analysis in Oracle Tablespace
Temp in Database
SELECT
tablespace_name,
SUM(bytes_used) / (1024 * 1024) AS used_mb,
SUM(bytes_free) / (1024 * 1024) AS free_mb
FROM
v$temp_space_header
GROUP BY
tablespace_name;
tablespace_name,
SUM(bytes_used) / (1024 * 1024) AS used_mb,
SUM(bytes_free) / (1024 * 1024) AS free_mb
FROM
v$temp_space_header
GROUP BY
tablespace_name;
Temp Tablespace details check
set linesize 190
col SID_SERIAL for a30
col username for a15
col osuser for a15
col module for a15
col program for a30
col tablespace for a20
set pages 5000
SELECT s.sid || ',' || s.serial# AS sid_serial,
s.username,
s.osuser,
p.spid,
s.module,
p.program,
SUM(t.blocks) * tbs.block_size / 1024 / 1024 AS mb_used,
t.tablespace,
COUNT(*) AS statements
FROM v$sort_usage t,
v$session s,
dba_tablespaces tbs,
v$process p
WHERE t.session_addr = s.saddr
AND s.paddr = p.addr
AND t.tablespace = tbs.tablespace_name
GROUP BY s.sid, s.serial#,
s.username,
s.osuser,
p.spid,
s.module,
p.program,
tbs.block_size,
t.tablespace
ORDER BY sid_serial;
col SID_SERIAL for a30
col username for a15
col osuser for a15
col module for a15
col program for a30
col tablespace for a20
set pages 5000
SELECT s.sid || ',' || s.serial# AS sid_serial,
s.username,
s.osuser,
p.spid,
s.module,
p.program,
SUM(t.blocks) * tbs.block_size / 1024 / 1024 AS mb_used,
t.tablespace,
COUNT(*) AS statements
FROM v$sort_usage t,
v$session s,
dba_tablespaces tbs,
v$process p
WHERE t.session_addr = s.saddr
AND s.paddr = p.addr
AND t.tablespace = tbs.tablespace_name
GROUP BY s.sid, s.serial#,
s.username,
s.osuser,
p.spid,
s.module,
p.program,
tbs.block_size,
t.tablespace
ORDER BY sid_serial;
Active Session
SET LINESIZE 190
COLUMN username FORMAT A30
COLUMN sql_id FORMAT A20
COLUMN tablespace FORMAT A30
COLUMN segtype FORMAT A10
SELECT
s.username,
s.sid,
s.serial#,
t.sql_id,
t.tablespace,
t.segtype,
t.blocks
FROM
v$session s
JOIN
v$tempseg_usage t ON s.saddr = t.session_addr
WHERE
s.username IS NOT NULL;
Particular Day
column sum_max_mb format 999,999,999;
column temporary_tablespace format A20
WITH
pivot1 AS
(
SELECT
trunc(ash.sample_time,'MI') sample_time,
ash.SESSION_ID,
ash.SESSION_SERIAL#,
ash.SQL_ID,
ash.sql_exec_id,
U.temporary_tablespace,
max(temp_space_allocated)/(1024*1024) max_temp_mb
FROM GV$ACTIVE_SESSION_HISTORY ash, dba_users U
WHERE
ash.user_id = U.user_id
and ash.session_type = 'FOREGROUND'
GROUP BY
trunc(ash.sample_time,'MI'),
ash.SESSION_ID,
ash.SESSION_SERIAL#,
ash.SQL_ID,
ash.sql_exec_id,
U.temporary_tablespace
)
SELECT temporary_tablespace, sample_time, sum(max_temp_mb) sum_max_mb
from pivot1 where sample_time like '28-OCT-2024%'
GROUP BY sample_time, temporary_tablespace
ORDER BY temporary_tablespace, sample_time;
COLUMN username FORMAT A30
COLUMN sql_id FORMAT A20
COLUMN tablespace FORMAT A30
COLUMN segtype FORMAT A10
SELECT
s.username,
s.sid,
s.serial#,
t.sql_id,
t.tablespace,
t.segtype,
t.blocks
FROM
v$session s
JOIN
v$tempseg_usage t ON s.saddr = t.session_addr
WHERE
s.username IS NOT NULL;
Particular Day
column sum_max_mb format 999,999,999;
column temporary_tablespace format A20
WITH
pivot1 AS
(
SELECT
trunc(ash.sample_time,'MI') sample_time,
ash.SESSION_ID,
ash.SESSION_SERIAL#,
ash.SQL_ID,
ash.sql_exec_id,
U.temporary_tablespace,
max(temp_space_allocated)/(1024*1024) max_temp_mb
FROM GV$ACTIVE_SESSION_HISTORY ash, dba_users U
WHERE
ash.user_id = U.user_id
and ash.session_type = 'FOREGROUND'
GROUP BY
trunc(ash.sample_time,'MI'),
ash.SESSION_ID,
ash.SESSION_SERIAL#,
ash.SQL_ID,
ash.sql_exec_id,
U.temporary_tablespace
)
SELECT temporary_tablespace, sample_time, sum(max_temp_mb) sum_max_mb
from pivot1 where sample_time like '28-OCT-2024%'
GROUP BY sample_time, temporary_tablespace
ORDER BY temporary_tablespace, sample_time;
set linesize 190
COLUMN module format A25
COLUMN sql_opname format A20
COLUMN etime_secs FORMAT 999,999.9
COLUMN etime_mins FORMAT 999,999.9
COLUMN user_id FORMAT 999999
COLUMN sid FORMAT 99999
COLUMN serial# FORMAT 99999
COLUMN username FORMAT A25
COLUMN inst_id FORMAT 99
COLUMN sql_opname FORMAT A10
COLUMN sql_id FORMAT A13
COLUMN sql_exec_id FORMAT 9999999999
COLUMN max_temp_mb FORMAT 999,999,999
COLUMN sql_start_time FORMAT A28
COLUMN sql_end_time FORMAT A28
SELECT ASH.inst_id,
ASH.user_id,
ASH.session_id sid,
ASH.session_serial# serial#,
ASH.sql_id,
ASH.sql_exec_id,
ASH.sql_opname,
ASH.module,
MIN(sample_time) sql_start_time,
MAX(sample_time) sql_end_time,
((CAST(MAX(sample_time) AS DATE)) - (CAST(MIN(sample_time) AS DATE))) * (3600*24) etime_secs ,
((CAST(MAX(sample_time) AS DATE)) - (CAST(MIN(sample_time) AS DATE))) * (60*24) etime_mins ,
MAX(temp_space_allocated)/(1024*1024) max_temp_mb
FROM gv$active_session_history ASH
WHERE ASH.session_type = 'FOREGROUND'
AND ASH.sql_id IS NOT NULL
AND sample_time BETWEEN to_timestamp('28-10-2024 00:00', 'DD-MM-YYYY HH24:MI') AND to_timestamp('29-10-2024 02:00', 'DD-MM-YYYY HH24:MI')
--and ASH.sql_id = &SQL_ID
GROUP BY ASH.inst_id,
ASH.user_id,
ASH.session_id,
ASH.session_serial#,
ASH.sql_id,
ASH.sql_opname,
ASH.sql_exec_id,
ASH.module;
COLUMN module format A25
COLUMN sql_opname format A20
COLUMN etime_secs FORMAT 999,999.9
COLUMN etime_mins FORMAT 999,999.9
COLUMN user_id FORMAT 999999
COLUMN sid FORMAT 99999
COLUMN serial# FORMAT 99999
COLUMN username FORMAT A25
COLUMN inst_id FORMAT 99
COLUMN sql_opname FORMAT A10
COLUMN sql_id FORMAT A13
COLUMN sql_exec_id FORMAT 9999999999
COLUMN max_temp_mb FORMAT 999,999,999
COLUMN sql_start_time FORMAT A28
COLUMN sql_end_time FORMAT A28
SELECT ASH.inst_id,
ASH.user_id,
ASH.session_id sid,
ASH.session_serial# serial#,
ASH.sql_id,
ASH.sql_exec_id,
ASH.sql_opname,
ASH.module,
MIN(sample_time) sql_start_time,
MAX(sample_time) sql_end_time,
((CAST(MAX(sample_time) AS DATE)) - (CAST(MIN(sample_time) AS DATE))) * (3600*24) etime_secs ,
((CAST(MAX(sample_time) AS DATE)) - (CAST(MIN(sample_time) AS DATE))) * (60*24) etime_mins ,
MAX(temp_space_allocated)/(1024*1024) max_temp_mb
FROM gv$active_session_history ASH
WHERE ASH.session_type = 'FOREGROUND'
AND ASH.sql_id IS NOT NULL
AND sample_time BETWEEN to_timestamp('28-10-2024 00:00', 'DD-MM-YYYY HH24:MI') AND to_timestamp('29-10-2024 02:00', 'DD-MM-YYYY HH24:MI')
--and ASH.sql_id = &SQL_ID
GROUP BY ASH.inst_id,
ASH.user_id,
ASH.session_id,
ASH.session_serial#,
ASH.sql_id,
ASH.sql_opname,
ASH.sql_exec_id,
ASH.module;
Comments
Post a Comment