0% found this document useful (0 votes)
131 views

Oracle Queries For Checkpoint

The document contains SQL queries and calculations to summarize various database performance metrics. The queries retrieve statistics from Oracle database views like v$sysstat, v$session, and dba_objects to calculate metrics like buffer cache hit ratio, dictionary cache hit ratio, library cache hit ratio, session waits, and more. Calculations are provided to derive percentages from the collected statistics.

Uploaded by

Anuj Singh
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
131 views

Oracle Queries For Checkpoint

The document contains SQL queries and calculations to summarize various database performance metrics. The queries retrieve statistics from Oracle database views like v$sysstat, v$session, and dba_objects to calculate metrics like buffer cache hit ratio, dictionary cache hit ratio, library cache hit ratio, session waits, and more. Calculations are provided to derive percentages from the collected statistics.

Uploaded by

Anuj Singh
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 13

/*000*/ tablespace_free :-

SELECT d.tablespace_name as name,


NVL (dfs.BYTES, 0) AS freeSp,
NVL (TRUNC (dfs.BYTES / ddf.BYTES * 100, 3), 0) AS avPct,
NVL (dfs.antall, 0) as chunks,
ddf.autoextend_flag as autoext,
NVL (TRUNC ((ddf.maxbytes)), 0) as maxSize,
NVL (TRUNC ( (ddf.BYTES - NVL (dfs.BYTES,
0))/(ddf.maxbytes)*100,3),0) as maxPct
FROM dba_tablespaces d,
(SELECT tablespace_name, SUM (BYTES) BYTES, COUNT (1)
antall FROM dba_free_space GROUP BY tablespace_name) dfs,
(SELECT tablespace_name, SUM (BYTES) BYTES, SUM (GREATEST
(maxbytes, BYTES)) maxbytes, COUNT (1) antall, MAX(autoextensible)
autoextend_flag
FROM dba_data_files GROUP BY tablespace_name) ddf
WHERE d.tablespace_name = ddf.tablespace_name(+)
AND d.tablespace_name = dfs.tablespace_name(+)
AND NOT (d.extent_management LIKE 'LOCAL'
AND d.CONTENTS LIKE 'TEMPORARY')
UNION ALL
SELECT LTRIM (d.tablespace_name) as name,
NVL (TRUNC (dfs.BYTES), 0) AS freeSp,
NVL (TRUNC (dfs.BYTES / ddf.BYTES * 100), 0) AS avPct,
DECODE (NVL (TRUNC ((dfs.BYTES / ddf.BYTES) * 100), 0), 0,
1, 100, 0,1) as chunks,
ddf.autoextend_flag as autoext,
NVL (TRUNC ((ddf.maxbytes)), 0) as maxSize,
NVL (TRUNC ( (ddf.BYTES - NVL (dfs.BYTES, 0)) /
(ddf.maxbytes)* 100,3),0) as maxPct
FROM dba_tablespaces d,
(SELECT tablespace_name, SUM (BYTES) BYTES, SUM (GREATEST
(maxbytes, BYTES)) maxbytes, COUNT (1) antall, MAX(autoextensible)
autoextend_flag
FROM dba_temp_files GROUP BY tablespace_name) ddf,
(SELECT ss.tablespace_name, SUM ( ss.free_blocks *
ts.BLOCKSIZE) BYTES, COUNT (1) antall
FROM gv$sort_segment ss, SYS.ts$ ts WHERE
ss.tablespace_name = ts.NAME GROUP BY ss.tablespace_name) dfs
WHERE d.tablespace_name = ddf.tablespace_name(+)
AND d.tablespace_name = dfs.tablespace_name(+)
AND d.extent_management LIKE 'LOCAL'
AND d.CONTENTS LIKE 'TEMPORARY'
ORDER BY 1

Calculations :-
PCT = 100.0-maxPct;
PCT_USED = 100.0- PCT
FREESP = (maxSize/100 * PCT);

/*001*/ buf_cachehit_ratio :-

SELECT a.value as db_block_gets,


b.value as consistent_gets,
c.value as physical_reads,
d.value as pr_direct,
e.value as pr_direct_lob,
f.value as pr_direct_temp_space
FROM v$sysstat a, v$sysstat b, v$sysstat c, v$sysstat d,
v$sysstat e, v$sysstat f
WHERE a.name = 'db block gets' AND b.name = 'consistent gets' AND
c.name = 'physical reads' AND d.name = 'physical reads direct'
AND e.name = 'physical reads direct (lob)' AND f.name =
'physical reads direct temporary tablespace'

Calculation :-
if ((DB_BLOCK_GETS + CONSISTENT_GETS) > 0)
hit_ratio = ((DB_BLOCK_GETS + CONSISTENT_GETS)-( PHYSICAL_READS -
PR_DIRECT - PR_DIRECT_LOB - PR_DIRECT_TEMP_SPACE))*100/( DB_BLOCK_GETS +
CONSISTENT_GETS);
else hit_ratio = 100;

/*002*/ dict_cachehit_ratio :-

SELECT (TRUNC(sum(gets))) as gets,(TRUNC(sum(getmisses))) as


getmisses FROM v$rowcache

Calculation :-

if ((gets) > 0)
hit_ratio = (gets-getmisses)*100/gets;
else hit_ratio = 100;

/*003*/ lib_cachehit_ratio :-

SELECT (TRUNC(sum(pins))) as pins,(TRUNC(sum(reloads))) as


reloads FROM v$librarycache

Calculation :-
if ((pins) > 0)
hit_ratio = (pins - reloads)*100/ pins;
else hit_ratio = 100;

/*004*/ memory_usage :-

SELECT (TRUNC(sum(se.value))) as value FROM v$sesstat se,


v$statname n WHERE n.statistic#=se.statistic# AND n.name='session pga memory'

/*005*/ rollback_segments :-
SELECT name,(TRUNC(waits)) as waits,(TRUNC(gets)) as gets FROM
v$rollstat, v$rollname WHERE v$rollstat.usn=v$rollname.usn

Calculation :-
if ((gets) > 0)
hit_ratio = ((gets - waits)*100)/ gets;
else hit_ratio = 100;

/*006*/ no_next_extents :-

SELECT
owner,s.segment_name,s.segment_type,s.tablespace_name,s.next_extent,s.partiti
on_name FROM dba_segments s, dba_tablespaces d,(SELECT tablespace_name,
sum(bytes) free_bytes FROM dba_free_space GROUP BY tablespace_name) f WHERE
f.tablespace_name(+) = s.tablespace_name AND s.tablespace_name NOT IN (SELECT
o.tablespace_name FROM dba_data_files o WHERE o.autoextensible='YES') AND
d.tablespace_name=s.tablespace_name AND d.allocation_type != 'SYSTEM' AND
s.next_extent > nvl(f.free_bytes,0)

/*007*/ invalid_objects :-

SELECT owner,object_type,object_name,status, 1 as value FROM


dba_objects WHERE status='INVALID' ORDER BY owner,object_type,object_name

/*008*/ chained_rows :-

SELECT owner,table_name,nvl(num_rows,0) as num_rows


,nvl(chain_cnt,0) as chain_cnt FROM all_tables WHERE owner NOT
IN('SYS','SYSTEM') AND (num_rows > 0 OR chain_cnt > 0) ORDER BY
owner,table_name

/*009*/ datafile_status :-

select t.name,h.bytes as used,h.status as chkstatus,d.status as


fstatus, decode(h.status,'ONLINE',1,0) as status, d.name as path from
v$datafile d, v$datafile_header h, v$tablespace t where d.file# = h.file# and
d.ts# = t.ts#

/*010*/ login_count :-

SELECT COUNT(username) as login_cnt FROM v$session WHERE username


NOT IN('SYS','SYSTEM')
/*011*/ enqueue_timeouts :-

SELECT value as enqueue_timeouts FROM v$sysstat WHERE


name='enqueue timeouts'

/*012*/ redo_logs :-

SELECT name,gets,misses FROM v$latch WHERE name IN('redo


allocation','redo copy')

Calculation:-
if ((gets) > 0)
hit_ratio = (misses*100)/ gets;
else hit_ratio = 0;

/*013*/ mts_response :-

SELECT network,DECODE(SUM(totalq),0,0,SUM(wait)*10 / SUM(totalq))


as resp_time FROM v$queue q, v$dispatcher d WHERE q.type='DISPATCHER' AND
q.paddr=d.paddr GROUP BY network,

/*014*/ mts_wait :-

SELECT decode(totalq,0,0,wait*10/totalq) as wait_time FROM


v$queue WHERE type='COMMON'

/*015*/ sga_memory :-

SELECT name, decode(pool, null, '(total)', '('||pool||')') as


pool, bytes FROM v$sgastat where name != 'free memory'

/*016*/ sort_ratio :-

SELECT sort_mem.value as sort_memory ,sort_disk.value as


sort_disk, sort_rows.value as sort_rows FROM v$sysstat sort_mem, v$sysstat
sort_disk, v$sysstat sort_rows WHERE sort_mem.name='sorts (memory)' AND
sort_disk.name='sorts (disk)' AND sort_rows.name='sorts (rows)'

Calculation:-
if ((sort_memory+sort_disk) > 0)
hit_ratio = (sort_memory)*100/(sort_memory+sort_disk);
else hit_ratio = 100;

/*017*/ index_status :-

SELECT owner,index_name,table_name,status FROM all_indexes WHERE


status NOT IN('VALID', 'N/A')

/*018*/ tablespace_status :-

SELECT tablespace_name,status,decode(status,'ONLINE',1,0) as
qstatus FROM dba_tablespaces

/*019*/ rollback_seg_status :-

SELECT segment_name,status,decode(status,'ONLINE',1,0) as qstatus


FROM dba_rollback_segs

/*020*/ tablespace_deficit :-

SELECT
s.segment_name,s.tablespace_name,s.next_extent,nvl(f.free_bytes,0) as
free_bytes,s.owner,s.partition_name FROM dba_segments s,dba_tablespaces
d,(SELECT tablespace_name,sum(bytes) free_bytes FROM dba_free_space GROUP BY
tablespace_name) f WHERE f.tablespace_name(+) = s.tablespace_name AND
s.tablespace_name NOT IN (SELECT o.tablespace_name FROM dba_data_files o
WHERE o.autoextensible = 'YES') AND d.tablespace_name = s.tablespace_name AND
d.allocation_type != 'SYSTEM' AND s.next_extent > nvl(f.free_bytes,0)

/*021*/ mts_uga_memory :-
SELECT SUM(value) memory FROM v$sesstat WHERE statistic#=20

/*022*/ user_locks :-

SELECT a.serial# as
serial,a.sid,a.username,b.type,b.ctime,lmode,a.osuser,c.sql_text
FROM v$session a,v$lock b, v$sqlarea c
WHERE b.type in ('TM','TX','UL') and
a.sid=b.sid and
lmode > 0 and
((a.PREV_HASH_VALUE = c.hash_value and
a.prev_sql_addr = c.address and
a.sql_hash_value = 0) or
(c.hash_value=a.sql_hash_value and c.address =
a.sql_address))

/*023*/ locked_users :-

SELECT br.username username_h, br.SID sid_h, br.serial#


serial_h, bd.username username_w, bd.SID sid_w, bd.serial# serial_w,
bd.ctime, br.sql_text sql_text_h, bd.sql_text sql_text_w, br.osuser osuser_h,
bd.osuser osuser_w
FROM (SELECT distinct se.username, se.SID, se.serial#,
txt.sql_text, se.osuser, lk.ctime
FROM v$lock lk, (SELECT q.sql_text, lk.id1, lk.id2,s.sid FROM
v$lock lk, v$session s, v$sql q WHERE s.lockwait IS NOT NULL AND s.lockwait =
lk.kaddr AND s.sql_address = q.address AND s.sql_hash_value = q.hash_value)
txt, v$session se
WHERE (lk.TYPE = 'TX') AND (lk.SID = se.SID) AND (se.sid =
txt.sid) AND (BLOCK = 0) AND (txt.id1 = lk.id1) AND (txt.id2 = lk.id2)) bd,
(SELECT se.username, se.SID, se.serial#, txt.sql_text, se.osuser
FROM v$lock lk, v$session se, (SELECT q.sql_text, s.SID FROM
v$session s, v$sql q WHERE s.prev_sql_addr = q.address) txt WHERE (lk.TYPE =
'TX') AND (lk.SID = se.SID) AND (txt.SID = se.SID) AND (BLOCK = 1)) br order
by bd.ctime desc

/*024*/ buf_cachehit_ratio_users :-

SELECT s.sid,username,Consistent_Gets,Block_Gets,Physical_Reads
FROM v$session s, v$sess_io i WHERE s.sid=i.sid AND
(Consistent_Gets+Block_Gets)>0 AND username IS NOT NULL

Calculation:-
if ((CONSISTENT_GETS + BLOCK_GETS) > 0)
hit_ratio = 100*(( CONSISTENT_GETS + BLOCK_GETS) - PHYSICAL_READS)/(
CONSISTENT_GETS + BLOCK_GETS);
else hit_ratio = 100;

/*025*/ session_waits :-

SELECT class,count,time FROM v$waitstat

/*026*/ system_statistics :-

SELECT statistic# as statistic, name, class, value FROM v$sysstat


/*027*/ system_waits :-

SELECT event, total_waits, total_timeouts, time_waited,


average_wait FROM v$system_event

/*028*/ dbfile_io :-

SELECT name,phyrds,pd.phys_reads,phywrts,pd.phys_wrts FROM


(SELECT (SUM(phyrds)) phys_reads, (SUM(phywrts)) phys_wrts FROM v$filestat)
pd, v$datafile df, v$filestat fs WHERE df.file# = fs.file#

Calculation:-

if (PHYS_READS > 0)
pctIn = (PHYRDS / PHYS_READS)*100;
else pctIn = 0;

if (PHYS_WRTS > 0)
pctOut = (PHYWRTS / PHYS_WRTS)*100;
else pctOut = 0;

pct = (pctIn>pctOut) ? pctIn:pctOut;

/*029*/ tablespace_alloc_free :-

SELECT LTRIM (d.tablespace_name) as name,


NVL (ddf.BYTES - NVL(u.BYTES, 0), 0) / 1024 as freeSp,
DECODE (d.CONTENTS, 'UNDO', NVL (TRUNC ((ddf.BYTES - NVL
(u.BYTES, 0))/(ddf.bytes)*100,3),0), NVL (TRUNC (dfs.BYTES / ddf.BYTES *
100,3), 0)) as avPct,
NVL (dfs.antall, 0) as chunks,
ddf.autoextend_flag as autoext,
NVL (TRUNC ((ddf.bytes) / 1024), 0) as maxSize,
NVL (TRUNC ( (ddf.BYTES - NVL (dfs.BYTES,
0))/(ddf.bytes)*100,3),0) as maxPct
FROM dba_tablespaces d,
(SELECT tablespace_name, SUM (BYTES) BYTES, MAX (BYTES)
maxbytes, COUNT (1) antall FROM dba_free_space GROUP BY tablespace_name) dfs,
(SELECT tablespace_name, SUM (BYTES) BYTES, SUM
(maxbytes) maxbytes, COUNT (1) antall, DECODE (MAX (autoextensible),'YES',
'J','N') autoextend_flag
FROM dba_data_files GROUP BY tablespace_name) ddf,
(SELECT tablespace_name, SUM (BYTES) BYTES FROM
dba_undo_extents WHERE status <> ('EXPIRED') GROUP BY tablespace_name) u
WHERE d.tablespace_name = ddf.tablespace_name(+)
AND d.tablespace_name = dfs.tablespace_name(+)
AND d.tablespace_name = u.tablespace_name(+)
AND NOT (d.extent_management LIKE 'LOCAL'
AND d.CONTENTS LIKE 'TEMPORARY')
UNION ALL
SELECT LTRIM (d.tablespace_name) as name,
NVL (TRUNC (ddf.BYTES / 1024), 0) - NVL (TRUNC (dfs.BYTES /
1024), 0) as freeSp,
100 - NVL (TRUNC (dfs.BYTES / ddf.BYTES * 100), 0) as
avPct,
DECODE (NVL (TRUNC (dfs.BYTES / ddf.BYTES * 100), 0),0,
1,100, 0) as chunks,
ddf.autoextend_flag as autoext,
NVL (TRUNC ((ddf.bytes) / 1024), 0) maxSize,
NVL (TRUNC (NVL (dfs.BYTES, 0) / (ddf.bytes)* 100,3),0) as
maxPct
FROM dba_tablespaces d,
(SELECT tablespace_name, SUM (BYTES) BYTES, SUM
(maxbytes) maxbytes, COUNT (1) antall, DECODE (MAX (autoextensible), 'YES',
'J','N') autoextend_flag
FROM dba_temp_files GROUP BY tablespace_name) ddf,
(SELECT ss.tablespace_name, SUM ((ss.used_blocks *
ts.BLOCKSIZE)) BYTES, MAX ((ss.used_blocks * ts.BLOCKSIZE)) maxbytes, COUNT
(1) antall
FROM gv$sort_segment ss, SYS.ts$ ts WHERE
ss.tablespace_name = ts.NAME GROUP BY ss.tablespace_name) dfs
WHERE d.tablespace_name = ddf.tablespace_name(+)
AND d.tablespace_name = dfs.tablespace_name(+)
AND d.extent_management LIKE 'LOCAL'
AND d.CONTENTS LIKE 'TEMPORARY'
ORDER BY 1

Calculation :-
PCT = 100.0-maxPct;
PCT_USED = 100.0- PCT
FREESP = (maxSize/100 * PCT);

/*030*/ sga_memory_free :-

SELECT name, decode(pool, null, '(total)', '('||pool||')') as


pool, bytes FROM v$sgastat where name = 'free memory'

/*031*/ lock_waits :-

select s.serial# as
serial,s.sid,s.username,s.osuser,e.total_waits,e.time_waited/100 as
total_time_waited from v$session_event e, v$session s where e.sid = s.sid and
e.event like 'enq:%' and s.user# <> 0

/*032*/ gc_service_util :-

select gets.value as gets, conv.value as converts, crb.value as


cr_blocks_received,curb.value as current_blocks_received,dbbg.value as
db_block_gets,cg.value as consistent_gets from
v$sysstat gets, v$sysstat conv, v$sysstat crb, v$sysstat curb,
v$sysstat dbbg, v$sysstat cg
where gets.name='global cache gets' and conv.name='global cache
converts' and crb.name='global cache cr blocks received' and
curb.name='global cache current blocks received' and dbbg.name='db block
gets' and cg.name ='consistent gets'

Calculation :-
if ((db_block_gets + consistent_gets) > 0)
CacheUtil = ((gets + converts + cr_blocks + current_blocks) * 100) /
(db_block_gets + consistent_gets);
else CacheUtil = 0;
/*033*/ gc_cr_timeouts :-

select value from v$sysstat where name='global cache cr timeouts'

/*034*/ gc_convert_timeouts :-

select value from v$sysstat where name='global cache convert


timeouts'

/*035*/ gc_blocks_lost :-

select value from v$sysstat where name='global cache blocks lost'

/*036*/ gc_blocks_corrupt :-

select value from v$sysstat where name='global cache blocks


corrupt'

/*037*/ gc_av_lock_get_time :-

select time.value * 10 as get_time, cnts.value as sync_gets,


cnta.value as async_gets from v$sysstat time, v$sysstat cnts, v$sysstat cnta
where time.name='global lock get time' and cnts.name='global lock sync gets'
and cnta.name='global lock async gets'

Calculation :-
if ((sync_gets + async_gets) > 0)
av_time = get_time / (sync_gets + async_gets);
else av_time = 0;

/*038*/ gc_fusion_wrt_rto :-

select time.value as DBWR_fusion_writes, cnt.value as


physical_writes from v$sysstat time, v$sysstat cnt where time.name='DBWR
fusion writes' and cnt.name='physical writes'

Calculation :-
if (physical_writes > 0)
rto = dbwr_fusion_writes*100 / physical_writes;
else rto = 0;

/*039*/ long_queries :-

select l.sid, l.username, u.process, u.osuser, l.opname,


l.elapsed_seconds, l.time_remaining, substr(s.sql_text,1,250) as sql_text
from v$session_longops l, v$sqlarea s, v$session u where
s.hash_value=l.sql_hash_value and s.address = l.sql_address and l.sid = u.sid
and l.sofar != l.totalwork

/*040*/ tablespace_size :-

SELECT tablespace_name, (SUM(bytes)/1024/1024) mbytes,


(SUM(bytes)) bytes, SUM(greatest(maxbytes,bytes)) maxbytes,
DECODE(MAX(autoextensible),'YES','J','N') autoext
FROM dba_data_files GROUP BY tablespace_name union ALL
SELECT tablespace_name, (SUM(bytes)/1024/1024), (SUM(bytes))
bytes, SUM(greatest(maxbytes,bytes)),
DECODE(MAX(autoextensible),'YES','J','N')
FROM dba_temp_files GROUP BY tablespace_name

/*041*/ database_size :-

select (a.datasize+b.tempsize+c.logsize)/1024 as mbtotalsize,


a.datasize+b.tempsize+c.logsize as totalsize, a.datasize, b.tempsize,
c.logsize from (select sum(bytes)/1024 datasize from dba_data_files) a ,
(select nvl(sum(bytes),0)/1024 tempsize from dba_temp_files) b, (select
sum(bytes)/1024 logsize from v$log) c

/*042*/ resource_util :-

SELECT resource_name , current_utilization , initial_allocation,


(current_utilization*100)/initial_allocation util_pct FROM v$resource_limit
WHERE LOWER (resource_name) IN ('processes', 'sessions', 'transactions' )

/*043*/ dataguard_status :-

SELECT a.status , DECODE(a.status,'VALID',1,0) as status_num,


decode(a.error,null,'NULL') as error,
decode(a.fail_date,NULL,'NULL',to_char(a.fail_date,'YYYY/MM/DD HH24;MI;SS'))
as fail_date, a.db_unique_name FROM V$ARCHIVE_DEST a, V$ARCHIVE_DEST_STATUS b
WHERE a.DEST_ID = b.dest_id and a.status <> 'INACTIVE'

/*044*/ dataguard_gap :-

select a.db_unique_name, (ap.lognr - b.APPLIED_SEQ#) as


gap_to_primary, (b.ARCHIVED_SEQ# - b.APPLIED_SEQ#) as gap_applied, (ap.lognr
- b.ARCHIVED_SEQ#) as gap_received, ((b.ARCHIVED_SEQ# - b.APPLIED_SEQ#) +
(ap.lognr - b.ARCHIVED_SEQ#)) as gap from (select b.archived_seq# lognr from
V$ARCHIVE_DEST a, V$ARCHIVE_DEST_STATUS b WHERE a.DEST_ID = b.dest_id and
upper(a.target) = 'PRIMARY' and a.status <> 'INACTIVE') ap, V$ARCHIVE_DEST
a, V$ARCHIVE_DEST_STATUS b WHERE a.DEST_ID = b.dest_id and a.status <>
'INACTIVE' and upper(a.target) = 'STANDBY'

/*045*/ dataguard_timegap :-

SELECT dest2.db_unique_name ,
TO_NUMBER ( (((pri.completion_time -
stand.completion_time) * 24) * 60)* 60) as gap_applied,
stand.sequence# as sequence#_standby,
pri.sequence# as sequence#_primary,
to_char(stand.completion_time,'DD.MM.YYYY HH24.MI.SS') as
dato_standby,
to_char(pri.completion_time,'DD.MM.YYYY HH24.MI.SS') as
dato_primary,
to_number( to_char(to_date('1','J') +(pri.completion_time -
stand.completion_time), 'J') - 1)
|| ' days ' || to_char(to_date('00.00.00','HH24.MI.SS') +
(pri.completion_time - stand.completion_time),
'HH24:MI:SS') as gap_applied_char
FROM v$archived_log pri,
v$archived_log stand,
v$archive_dest dest1,
v$archive_dest dest2
WHERE pri.sequence# IN (SELECT MAX (sequence#) FROM
v$archived_log ml WHERE ml.dest_id = pri.dest_id)
AND stand.sequence# IN (SELECT b.applied_seq# FROM
v$archive_dest_status b WHERE b.dest_id = stand.dest_id)
AND dest1.dest_id = 1
AND pri.dest_id = dest1.dest_id
AND stand.dest_id = dest2.dest_id
AND stand.dest_id <> dest1.dest_id

/*046*/ tablespace_temp_free :-

SELECT d.tablespace_name as name, d.extent_management, ddf.BYTES /


1024 as tssize, (ddf.BYTES - NVL (dfs.BYTES, 0)) / 1024 as free,
NVL((ddf.BYTES - NVL (dfs.BYTES, 0)) / ddf.BYTES * 100, 0) as free_pct
FROM dba_tablespaces d,
(SELECT tablespace_name, SUM (BYTES) BYTES, MAX (BYTES)
maxbytes, COUNT (1) antall FROM dba_free_space GROUP BY tablespace_name) dfs,
(SELECT tablespace_name, SUM (BYTES) BYTES, SUM (maxbytes)
maxbytes, COUNT (1) antall, DECODE (MAX (autoextensible),'YES', 'J','N')
autoextend_flag
FROM dba_data_files GROUP BY tablespace_name) ddf
WHERE d.tablespace_name = ddf.tablespace_name
AND d.tablespace_name = dfs.tablespace_name
AND NOT (d.extent_management LIKE 'LOCAL')
AND d.CONTENTS = 'TEMPORARY'
UNION ALL
SELECT d.tablespace_name as name, d.extent_management, ddf.BYTES
/ 1024 as tssize, (ddf.BYTES - NVL (dfs.BYTES, 0)) / 1024 as free, NVL
((ddf.BYTES - NVL (dfs.BYTES, 0)) / ddf.BYTES * 100, 0) as free_pct
FROM dba_tablespaces d,
(SELECT tablespace_name, SUM (BYTES) BYTES, SUM (maxbytes)
maxbytes, COUNT (1) antall, DECODE (MAX (autoextensible), 'YES', 'J','N')
autoextend_flag
FROM dba_temp_files GROUP BY tablespace_name) ddf,
(SELECT ss.tablespace_name, SUM ((ss.used_blocks *
ts.BLOCKSIZE)) BYTES, MAX ((ss.used_blocks * ts.BLOCKSIZE)) maxbytes, COUNT
(1) antall
FROM gv$sort_segment ss, SYS.ts$ ts WHERE ss.tablespace_name =
ts.NAME GROUP BY ss.tablespace_name) dfs
WHERE d.tablespace_name = ddf.tablespace_name
AND d.tablespace_name = dfs.tablespace_name
AND d.extent_management LIKE 'LOCAL'
AND d.CONTENTS = 'TEMPORARY'
ORDER BY 1

/*047*/ active_users :-

SELECT COUNT(username) as active_users FROM v$session WHERE username


NOT IN('SYS','SYSTEM') and status = 'ACTIVE'

/*048*/ flash_recovery_area_memory_free :-

SELECT space_limit, space_used, (space_limit - space_used)


space_free from v$recovery_file_dest

/*049*/ extents :-
SELECT /*+ RULE */
segment_name,owner,tablespace_name,TRUNC(extents) as extents,
segment_type,partition_name FROM dba_segments WHERE extents >= 10 AND
TABLESPACE_NAME IN (SELECT DTBS.tablespace_name FROM DBA_TABLESPACES DTBS
WHERE DTBS.TABLESPACE_NAME NOT IN ('SYS','SYSTEM'))ORDER BY extents desc,
segment_name

/*050*/ extents :-

SELECT /*+ RULE */


segment_name,owner,tablespace_name,TRUNC(extents) as extents,
segment_type,partition_name FROM dba_segments WHERE extents >= 10 AND
TABLESPACE_NAME IN (SELECT DTBS.tablespace_name FROM DBA_TABLESPACES DTBS
WHERE DTBS.TABLESPACE_NAME NOT IN ('SYS','SYSTEM','ROLLBACK','UNDO'))ORDER
BY extents desc, segment_name

/*051*/ extents :-

SELECT /*+ RULE */


segment_name,owner,tablespace_name,TRUNC(extents) as extents,
segment_type,partition_name FROM dba_segments WHERE extents >= 10 AND
TABLESPACE_NAME IN (SELECT DTBS.tablespace_name FROM DBA_TABLESPACES DTBS
WHERE DTBS.extent_management != 'LOCAL' AND DTBS.TABLESPACE_NAME NOT IN
('SYS','SYSTEM'))ORDER BY extents desc, segment_name

/*052*/ extents :-

SELECT /*+ RULE */


segment_name,owner,tablespace_name,TRUNC(extents) as extents,
segment_type,partition_name FROM dba_segments WHERE extents >= 10 AND
TABLESPACE_NAME IN (SELECT DTBS.tablespace_name FROM DBA_TABLESPACES DTBS
WHERE DTBS.extent_management != 'LOCAL' AND DTBS.TABLESPACE_NAME NOT IN
('SYS','SYSTEM','ROLLBACK','UNDO'))ORDER BY extents desc, segment_name

/*053*/ remaining_extents :-

SELECT /*+ RULE */ owner,segment_name,segment_type,(max_extents-


NVL(extents,0)) as extleft, partition_name FROM dba_segments WHERE
(max_extents-NVL(extents,0))<100

/*054*/ remaining_extents :-

SELECT owner,segment_name,segment_type,(max_extents-
NVL(extents,0)) as extleft, partition_name FROM DBA_SEGMENTS WHERE
tablespace_name IN ( SELECT DTBS.tablespace_name FROM DBA_TABLESPACES DTBS
WHERE DTBS.TABLESPACE_NAME NOT IN ('SYS','SYSTEM','ROLLBACK','UNDO'))

/*055*/ remaining_extents :-

SELECT owner,segment_name,segment_type,(max_extents-
NVL(extents,0)) as extleft, partition_name FROM DBA_SEGMENTS WHERE
tablespace_name IN ( SELECT DTBS.tablespace_name FROM DBA_TABLESPACES DTBS
WHERE DTBS.extent_management != 'LOCAL' AND DTBS.TABLESPACE_NAME NOT IN
('SYS','SYSTEM'))

/*056*/ remaining_extents :-

SELECT owner,segment_name,segment_type,(max_extents-
NVL(extents,0)) as extleft, partition_name FROM DBA_SEGMENTS WHERE
tablespace_name IN ( SELECT DTBS.tablespace_name FROM DBA_TABLESPACES DTBS
WHERE DTBS.extent_management != 'LOCAL' AND DTBS.TABLESPACE_NAME NOT IN
('SYS','SYSTEM','ROLLBACK','UNDO'))

/*057*/ active_connection_ratio :-

SELECT (SELECT COUNT(*) FROM V$SESSION) AS ACTIVE, VP.VALUE as


TOTAL FROM V$PARAMETER VP WHERE VP.NAME = 'sessions'

Calculation :-

if(TOTAL > 0)
dPct = (ACTIVE / TOTAL) * 100.0;
else
dPct = 100.0;

You might also like