Undo Related Queries Part 1

To check Retention Guarantee for Undo Tablespace

SELECTย tablespace_name,
status,
CONTENTS,
logging,
retention
FROMย ย ย dba_tablespaces
WHEREย ย tablespace_nameย LIKEย โ€˜%UNDO%โ€™;

 

To show ACTIVE/EXPIRED/UNEXPIRED Extents of Undo Tablespace

 

SELECTย tablespace_name,
status,
Count(extent_id)ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ€œExtentย Countโ€,
SUM(blocks)ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ€œTotalย Blocksโ€,
SUM(blocks)ย *ย 8ย /ย (ย 1024ย *ย 1024ย )ย total_space
FROMย ย ย dba_undo_extents
GROUPย ย BYย tablespace_name,
status;

 

Extent Count and Total Blocks

 

setย linesizeย 152
colย tablespace_nameย FORย a20
colย statusย FORย a10
SELECTย tablespace_name,
status,
Count(extent_id)ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ€œExtentย Countโ€,
SUM(blocks)ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ€œTotalย Blocksโ€,
SUM(bytes)ย /ย (ย 1024ย *ย 1024ย *ย 1024ย )ย spaceInGB
FROMย ย ย dba_undo_extents
WHEREย ย tablespace_nameย INย (ย โ€˜&undotbspโ€™ย )
GROUPย ย BYย tablespace_name,
status;

 

To show UndoRetention Value

 

Show parameter undo_retention;

 

 

Undo retention in hours

colย โ€œRetentionโ€ย FORย a30
colย nameย FORย a30
colย valueย FORย a50
SELECTย nameย ย ย ย ย ย ย ย ย ย ย ย โ€œRetentionโ€,
valueย /ย 60ย /ย 60ย โ€œHoursโ€
FROMย ย ย v$parameter
WHEREย ย nameย LIKEย โ€˜%undo_retention%โ€™;

 

To check space related statistics ofย ย UndoTablespace from stats$undostat of 90 days

SELECTย undoblks,
begin_time,
maxquerylen,
unxpstealcnt,
expstealcnt,
nospaceerrcnt
FROMย ย ย stats$undostat
WHEREย ย begin_timeย BETWEENย SYSDATEย โ€“ย 90ย ANDย SYSDATE
ANDย unxpstealcntย >ย 0;

 

To check space related statistics ofย ย UndoTablespace from v$undostat

selectย sum(ssolderrcnt)ย โ€œTotalย ORA-1555sโ€,ย round(max(maxquerylen)/60/60)ย โ€œMaxย Queryย HRSโ€,ย SUM(unxpstealcnt)ย โ€œUNExpiredย STEALSโ€,ย SUM(expstealcnt)ย โ€œExpiredย STEALSโ€ย FROMย v$undostatย ORDERย BYย begin_time;

 

Date wise occurrence of ORA-1555

SELECTย To_char(begin_time,ย โ€˜mm/dd/yyyyย hh24:miโ€™)ย โ€œInt.ย Startโ€,
ssolderrcntย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ€œORA-1555sโ€,
maxquerylenย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ€œMaxย Queryโ€,
unxpstealcntย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ€œUNExpย SCntโ€,
unxpblkrelcntย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ€œUnEXPblksโ€,
expstealcntย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ€œExpย SCntโ€,
expblkrelcntย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ€œExpBlksโ€,
nospaceerrcntย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย nospace
FROMย ย ย v$undostat
WHEREย ย ssolderrcntย >ย 0
ORDERย ย BYย begin_time;

 

Total number of ORA-1555s since instance startup

SELECTย โ€˜TOTALย #ย OFย ORA-01555ย SINCEย INSTANCEย STARTUPย :ย โ€˜
||ย To_char(startup_time,ย โ€˜DD-MON-YYย HH24:MI:SSโ€™)
FROMย ย ย v$instance;

 

To check for Active Transactions

setย headย ON
SELECTย usn,
extents,
Round(rssizeย /ย 1048576)ย rssize,
hwmsize,
xacts,
waits,
optsizeย /ย 1048576ย ย ย ย ย ย ย optsize,
shrinks,
wraps
FROMย ย ย v$rollstat
WHEREย ย xactsย >ย 0
ORDERย ย BYย rssize;

 

Undo Space Utilization by each Sessions

 

setย linesย 200
colย sidย FORย 99999
colย usernameย FORย a10
colย nameย FORย a15
SELECTย s.sid,
s.serial#,
username,
s.machine,
t.used_ublk,
t.used_urec,
rn.name,
(ย t.used_ublkย *ย 8ย )ย /ย 1024ย /ย 1024ย SizeGB
FROMย ย ย v$transactionย t,
v$sessionย s,
v$rollstatย rs,
v$rollnameย rn
WHEREย ย t.addrย =ย s.taddr
ANDย rs.usnย =ย rn.usn
ANDย rs.usnย =ย t.xidusn
ANDย rs.xactsย >ย 0;

 

List of long running queries since instance startup

setย headย OFF
SELECTย โ€˜LISTย OFย LONGย RUNNINGย โ€“ย QUERYย SINCEย INSTANCEย STARTUPโ€™
FROMย ย ย dual;

setย headย ON
SELECTย *
FROMย ย ย (SELECTย To_char(begin_time,ย โ€˜DD-MON-YYย hh24:mi:ssโ€™)ย BEGIN_TIME,
Round((ย maxquerylenย /ย 3600ย ),ย 1)ย ย ย ย ย ย ย ย ย ย ย ย Hours
FROMย ย ย v$undostat
ORDERย ย BYย maxquerylenย DESC)
WHEREย ย ROWNUMย <ย 11;

 

Undo Space used by all transactions

setย linesย 200
colย sidย FORย 99999
colย usernameย FORย a10
colย nameย FORย a15
SELECTย s.sid,
s.serial#,
username,
s.machine,
t.used_ublk,
t.used_urec,
rn.name,
(ย t.used_ublkย *ย 8ย )ย /ย 1024ย /ย 1024ย SizeGB
FROMย ย ย v$transactionย t,
v$sessionย s,
v$rollstatย rs,
v$rollnameย rn
WHEREย ย t.addrย =ย s.taddr
ANDย rs.usnย =ย rn.usn
ANDย rs.usnย =ย t.xidusn
ANDย rs.xactsย >ย 0;

 

 

 

 

About Syed Saad

With 16 years of experience as a certified and skilled Oracle Database Administrator, I possess the expertise to handle various levels of database maintenance tasks and proficiently perform Oracle updates. Throughout my career, I have honed my analytical abilities, enabling me to swiftly diagnose and resolve issues as they arise. I excel in planning and executing special projects within time-sensitive environments, showcasing exceptional organizational and time management skills. My extensive knowledge encompasses directing, coordinating, and exercising authoritative control over all aspects of planning, organization, and successful project completions. Additionally, I have a strong aptitude for resolving customer relations matters by prioritizing understanding and effective communication. I am adept at interacting with customers, vendors, and management, ensuring seamless communication and fostering positive relationships.

Check Also

AKS_Cover

Restrict Applications Users To Be Signed In

How Can I Restrict Applications Users To Be Signed In Only Once At Any Time …

Leave a Reply