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

Useful Scripts For APPS DBA

This document provides several SQL queries useful for Apps DBAs for day-to-day operations and troubleshooting. The queries check for patches applied between dates, show database version information, check materialized views, find file versions in the database, check package versions, and more. It also includes queries to check printer configurations, AQ setup, and workflow agent listeners. Useful queries are provided to find log file locations, check installed product status, and determine versions of various Oracle Applications components.

Uploaded by

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

Useful Scripts For APPS DBA

This document provides several SQL queries useful for Apps DBAs for day-to-day operations and troubleshooting. The queries check for patches applied between dates, show database version information, check materialized views, find file versions in the database, check package versions, and more. It also includes queries to check printer configurations, AQ setup, and workflow agent listeners. Useful queries are provided to find log file locations, check installed product status, and determine versions of various Oracle Applications components.

Uploaded by

robwolters
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 24

http://techgoeasy.

com

Queries for
Apps DBA
It contains important
queries for APPS DBA
day to day operation

Techgoeasy.com
1 [Queries for Apps DBA]

Apps Queries

Script to find out patches applied between certain time periods

select orig_bug_number,to_char(max(last_update_date),DD-MON-YYYY hh24:mi:ss) updated


from ad_patch_run_bugs where
orig_bug_number in
(
select distinct app_patch.patch_name
from (
select substr(ap.patch_name,1,10) patch_name
from ad_patch_runs pr, ad_patch_drivers dr,
ad_applied_patches ap
where pr.start_date between to_date(&&1,MM/DD/YYYY)
and to_date(&&2,MM/DD/YYYY)
and dr.patch_driver_id = pr.patch_driver_id
and ap.applied_patch_id = dr.applied_patch_id
and not exists
(select x from ad_comprising_patches cp
where cp.patch_driver_id = dr.patch_driver_id)
UNION ALL
select substr(b.bug_number,1,10) patch_name
from ad_patch_runs pr, ad_patch_drivers dr,
ad_comprising_patches cp, ad_bugs b
where pr.start_date between to_date(&&1,MM/DD/YYYY)
and to_date(&&2,MM/DD/YYYY)
and dr.patch_driver_id = pr.patch_driver_id
and cp.patch_driver_id = pr.patch_driver_id
and cp.bug_id = b.bug_id) app_patch)
group by orig_bug_number;

Version information

select name, created from v$database;


select * from product_component_version;
select RELEASE_NAME from FND_PRODUCT_GROUPS;

This material is created by http://techgoeasy.com/ and is for your personal and non-commercial use
only.
2 [Queries for Apps DBA]

Materialized view

select unusable, known_stale, invalid, REWRITE_ENABLED, mview_name from


sys.dba_mview_analysis where MVIEW_NAME like MSC%;

What is File version in database

set pages 52
set verify off
set term on
set feedback off
col APP NAME format a10
col filename format a15
col version format a15
col last_update_date format a15
set linesize 90
select af.app_short_name APP NAME,
af.filename,
afv.version,
afv.LAST_UPDATE_DATE
from ad_files af,
ad_file_versions afv
where af.file_id = afv.file_id and
af.filename like &1
order by afv.LAST_UPDATE_DATE desc
/

This material is created by http://techgoeasy.com/ and is for your personal and non-commercial use
only.
3 [Queries for Apps DBA]

What is the package versions?


select text
from dba_source
where line = 2
and name = upper(&enter_package_name)
order by line
/

The package version return from above query can be checked with the version of file in
$APPL_TOP
Useful Printer Query for apps

Printer Queries

SELECT NUMBER_OF_COPIES ,NLS_LANGUAGE ,NLS_TERRITORY ,PRINTER ,


PRINT_STYLE ,COMPLETION_TEXT ,OUTPUT_FILE_TYPE ,
NLS_CODESET ,OUTFILE_NODE_NAME,OUTFILE_NAME
FROM apps.FND_CONCURRENT_REQUESTS
WHERE REQUEST_ID= &REQID;

SELECT PRINTER_STYLE_NAME ,SRW_DRIVER ,WIDTH , LENGTH ,


ORIENTATION FROM apps.FND_PRINTER_STYLES
WHERE PRINTER_STYLE_NAME= ( SELECT PRINT_STYLE FROM apps.FND_CONCURRENT_REQUESTS
WHERE REQUEST_ID= &REQID );

SELECT PRINTER_DRIVER_NAME,
USER_PRINTER_DRIVER_NAME ,
PRINTER_DRIVER_METHOD_CODE ,
SPOOL_FLAG ,
SRW_DRIVER ,
COMMAND_NAME ,
ARGUMENTS ,
INITIALIZATION , RESET
FROM apps.FND_PRINTER_DRIVERS
WHERE PRINTER_DRIVER_NAME =( SELECT PRINTER_DRIVER FROM apps.FND_PRINTER_INFORMATION
WHERE PRINTER_STYLE=( SELECT PRINT_STYLE FROM apps.FND_CONCURRENT_REQUESTS WHERE
REQUEST_ID= &1 AND PRINTER_TYPE=( SELECT PRINTER_TYPE FROM apps.FND_PRINTER WHERE
The log files are located
PRINTER_NAME=( in $LOG_HOME ($INST_TOP/logs) in Oracle Applications R12
SELECT PRINTER
Database Tier
FROM apps.FND_CONCURRENT_REQUESTS WHERE REQUEST_ID= &REQID)) );

This material is created by http://techgoeasy.com/ and is for your personal and non-commercial use
only.
4 [Queries for Apps DBA]

Database Tier log files location

Alert Log File location:


$ORACLE_HOME/admin/$CONTEXT_NAME/bdump/alert_$SID.log
Trace file location:
$ORACLE_HOME/admin/SID_Hostname/udump
Logs for the adpreclone.pl are located:
$ORACLE_HOME/appsutil/log/$CONTEXT_NAME/StageDBTier_< timestamp >.log
Logs for the adcfgclone.pl are located:
RDBMS $ORACLE_HOME/appsutil/log/$CONTEXT_NAME/ApplyDBTier_< timestamp >.log
Logs for the adconfig are located:
RDBMS $ORACLE_HOME/appsutil/log/$CONTEXT_NAME/< timestamp >/adconfig.log
RDBMS $ORACLE_HOME/appsutil/log/$CONTEXT_NAME/< timestamp >/NetServiceHandler.log

Application Tier

Apache Logs (10.1.3 Oracle Home which is equivalent to iAS Oracle Home - Apache, OC4J
and OPMN)
$LOG_HOME/ora/10.1.3/Apache - > Location for Apache Error and Access log files
$LOG_HOME/ora/10.1.3/j2ee - > location for j2ee related log files
$LOG_HOME/ora/10.1.3/opmn - > location for opmn related log files
Forms & Reports related logs (10.1.2 Oracle home which is equivalent to 806 Oracle
Home)
$LOG_HOME/ora/10.1.2/forms
$LOG_HOME/ora/10.1.2/reports
Startup/Shutdown Log files location:
$INST_TOP/logs/appl/admin/log
Patch log files location:
$APPL_TOP/admin/$TWO_TASK/log/
Logs for the adpreclone.pl are located:
$INST_TOP/admin/log/StageAppsTier_< timestamp >.log
Where the logs for the admkappsutil.pl are located?
$INST_TOP/admin/log/MakeAppsUtil_< timestamp >.log
Logs for the adcfgclone.pl are located:
$INST_TOP/admin/log/ApplyAppsTier_< timestamp >.log
Logs for the adconfig are located:
$INST_TOP/admin/log/< timestamp >/adconfig.log

This material is created by http://techgoeasy.com/ and is for your personal and non-commercial use
only.
5 [Queries for Apps DBA]

SQL to check the AQ setup in Apps


set echo on
set timing on
set feedback on
set pagesize 132
set linesize 100
col name form a30
col queue_table form a30
col enqueue_enabled form a7
col dequeue_enabled form a7
col retention form a20
select name,
queue_table,
enqueue_enabled,
dequeue_enabled,
retention
from dba_queues where owner = 'APPLSYS'
and queue_type = 'NORMAL_QUEUE'
order by 1;

Sql to check Workflow Agent Listener/WF Java Deferred Agent Listeners are running

set pagesize 132


set linesize 90
col COMPONENT_NAME form a50
col COMPONENT_STATUS form a15
col COMPONENT_TYPE form a25
col STARTUP_MODE form a10
col CONTAINER_TYPE form a5
col INBOUND_AGENT_NAME form a20
col OUTBOUND_AGENT_NAME form a20
col CORRELATION_ID form a30
col MAX_IDLE_TIME form 9999999
rem
select
COMPONENT_NAME,
COMPONENT_STATUS,
COMPONENT_TYPE,
This material is created by http://techgoeasy.com/ and is for your personal and non-commercial use
only.
6 [Queries for Apps DBA]

STARTUP_MODE,
CONTAINER_TYPE,
INBOUND_AGENT_NAME,
OUTBOUND_AGENT_NAME,
CORRELATION_ID,
MAX_IDLE_TIME
from FND_SVC_COMPONENTS
order by COMPONENT_NAME
/

JVM connection queries

A) To find total number of open database connections for a given JVM PID
SELECT s.process, Count(*) all_count FROM v$session s WHERE s.process IN () GROUP BY
s.process

B) To find number of database connections per JVM that were inactive for longer then 30
minutes
SELECT s.process, Count(*) olderConnection_count FROM v$session s WHERE s.process IN ()
and s.last_call_et>=(30*60) and s.status='INACTIVE' GROUP BY s.process

C) To find the modules responsible to JDBC connections for a process id


SELECT Count(*), process,machine, program, MODULE FROM v$session s
WHERE s.process IN ('&id')GROUP BY process,machine, program, MODULE ORDER BY
process,machine, program, MODULE;
column module heading "Module Name" format a48;
column machine heading "Machine Name" format a15;
column process heading "Process ID" format a10;
column inst_id heading "Instance ID" format 99;
prompt
prompt Connection Usage Per Module and process
select to_char(sysdate, 'dd-mon-yyyy hh24:mi') Time from dual
/

prompt ~~~~
select count(*), machine, process, module from v$session
where program like 'JDBC%' group by machine, process, module order by 1 asc
/

This material is created by http://techgoeasy.com/ and is for your personal and non-commercial use
only.
7 [Queries for Apps DBA]

How to find if the bug number or patch is applied to Apps ERP

select substr(APPLICATION_SHORT_NAME,1,10)
Product,substr(BUG_NUMBER,1,10),Version,last_update_date applied_date from ad_bugs
where BUG_NUMBER= to_char('&bug_no');

How to find the patch level of particular application


select pi.patch_level, Application_short_name from
fnd_product_installations pi, fnd_application fa where fa.application_id
= pi.application_id and Application_short_name like '&App_Short_Name'
/

select patch_level from fnd_product_installations where patch_level LIKE ('%&1%');

How to find EWT version


unzip -l $FND_TOP/java/jar/fndewt.jar | grep 3_

How to list out the various information of various product

set linesize 1000


column application_id format a999999 heading "APPL|ID"
column application_short_name format a10 heading "APPL|SHORT NAME"
column application_name format a50 heading "APPLICATION NAME"
column language format a4 heading "LANG"
select a.application_id,
a.application_short_name,
a.basepath,
at.application_name
from fnd_application a,
fnd_application_tl at
where at.application_id = a.application_id
and at.language='US'
group by
a.application_id,a.application_short_name,a.basepath,at.application_name,at.language
order by a.application_id
/

This material is created by http://techgoeasy.com/ and is for your personal and non-commercial use
only.
8 [Queries for Apps DBA]

How to find the installed status of all the products

set linesize 1000


column APPS format a10
select decode(nvl(a.APPLICATION_short_name,'Not Found'),
'SQLAP','AP','SQLGL','GL','OFA','FA',
'Not Found','id '||to_char(fpi.application_id),
a.APPLICATION_short_name) apps,
decode(fpi.status,'I','Installed','S','Shared',
'N','Inactive',fpi.status) status,
fpi.product_version,
nvl(fpi.patch_level,'-- Not Available --') Patchset,
to_char(fpi.last_update_date,'dd-Mon-RRRR') "Update Date"
from fnd_oracle_userid o, fnd_application a, fnd_product_installations fpi
where fpi.application_id = a.application_id(+)
and fpi.oracle_id = o.oracle_id(+)
order by 1,2
/

This script helps in identifying the various versions of a particular file, the associated BUG
NUMBERS, the Date on which it was applied.Input is the FILE NAME whose VERSION is to be
determined

set linesize 1000


column filename format a15
column bug_number format a10
column version format a15
set pages 250
set verify off
select a.bug_number,h.filename,g.version,
to_char(c.start_date,'DD-MON-YYYY HH:MI:SS')start_time,
to_char(c.end_date,'DD-MON-YYYY HH:MI:SS')end_time,
to_char(to_date('00:00:00','HH24:MI:SS') +(c.end_date - c.start_date), 'HH24:MI:SS') Duration
from ad_bugs a,
ad_patch_run_bugs b,
ad_patch_runs c,
ad_patch_drivers d,
This material is created by http://techgoeasy.com/ and is for your personal and non-commercial use
only.
9 [Queries for Apps DBA]

ad_applied_patches e,
ad_patch_run_bug_actions f,
ad_file_versions g,
ad_files h
where a.bug_id = b.bug_id
and b.patch_run_id = c.patch_run_id
and c.patch_driver_id = d.patch_driver_id
and d.applied_patch_id = e.applied_patch_id
and b.patch_run_bug_id = f.patch_run_bug_id
and f.patch_file_version_id = g.file_version_id
and g.file_id = h.file_id
and h.filename='&File_Name'
order by c.end_date desc
/

You can tell if you're on OAF 5.7 version OAF 5.10 on the database tier by running the
following SQL:
select jdr_mds_internal.getRepositoryVersion from dual;
If it returns something like 9.0.3.6.0_### then you are on OAF 5.7. If it
returns 9.0.5.0.0_### then you are on OAF 5.10.

how to find .o file version


adident Header FNDCRM | grep afpcrm.oc

To find forms session in database

set linesize 1000


column username format a8 heading "User|Name"
column sid format 9999
column serial# format 99999
column user_form_name format a25
column spid format a5
column unix_process format a7 heading "UNIX|Process"

This material is created by http://techgoeasy.com/ and is for your personal and non-commercial use
only.
10 [Queries for Apps DBA]

column user_name format a15 trunc heading "USER NAME"


column Responsibility_name format a20 heading "Responsibility |Name"
select
s.sid,
s.serial#,
s.audsid,
s.username,
s.process unix_process,
p.spid,
u.user_name,
f.user_form_name,
to_char(a.start_time ,'DD-MON-YY') start_time,
f.responsibility_name
from
v$process p,
v$session s,
fnd_form_sessions_v f,
applsys.fnd_logins a,
applsys.fnd_user u
where p.addr = s.paddr
and p.spid = f.PROCESS_SPID (+)
and s.process=a.spid
and p.pid=a.pid
and a.user_id=u.user_id
order by 1
/

To find application information

set linesize 1000


column application_short_name format a15 heading "APPL|SHORT_NAME"
column product_version format a15 heading "PRODUCT|VERSION"
column oracle_username format a12 heading "ORACLE|USER"
select
a.APPLICATION_SHORT_NAME,
a.BASEPATH,
p.PRODUCT_VERSION,
o.ORACLE_USERNAME,
p.PATCH_LEVEL
This material is created by http://techgoeasy.com/ and is for your personal and non-commercial use
only.
11 [Queries for Apps DBA]

from
fnd_application a,
fnd_product_installations p,
fnd_oracle_userid o
where
a.application_id = p.application_id and
p.oracle_id = o.oracle_id
/

To determine active JDBC sessions

col program format a40


col module format a40
select sid,serial#,module,program,sql_hash_value,last_call_et from v$session where status =
'ACTIVE'and program like 'JDBC%'
order by sql_hash_value
/

To determine dependency

set linesize 1000


column object_name format a40
column owner format a15
select owner,object_name,object_type,status, to_char (LAST_DDL_TIME,'DD-MON-YYYY
HH:MI:SS') LAST_DDL_TIME from dba_objects
where object_name IN (SELECT referenced_name FROM dba_dependencies WHERE name =
'&Invalid_Object_Name');

set linesize 1000


column object_name format a40
column owner format a15
select owner,object_name,object_type,status, to_char (LAST_DDL_TIME,'DD-MON-YYYY
HH:MI:SS') LAST_DDL_TIME
from dba_objects where object_name =upper ('&object_name');

This material is created by http://techgoeasy.com/ and is for your personal and non-commercial use
only.
12 [Queries for Apps DBA]

Profile Related queries

Site level profile


select
a.PROFILE_OPTION_ID,a.PROFILE_OPTION_NAME,b.USER_PROFILE_OPTION_NAME,c.PROFILE_
OPTION_VALUE ,c.level_id
from fnd_profile_options a,fnd_profile_options_tl b ,fnd_profile_option_values c where
a.PROFILE_OPTION_NAME=b.PROFILE_OPTION_NAME and
a.PROFILE_OPTION_ID=c.PROFILE_OPTION_ID
and b.LANGUAGE='US' and b.USER_PROFILE_OPTION_NAME like '&1';

Application level
select
a.PROFILE_OPTION_ID,a.PROFILE_OPTION_NAME,b.USER_PROFILE_OPTION_NAME,c.PROFILE_
OPTION_VALUE from fnd_profile_options a,fnd_profile_options_tl b
,fnd_profile_option_values c where a.PROFILE_OPTION_NAME=b.PROFILE_OPTION_NAME and
a.PROFILE_OPTION_ID=c.PROFILE_OPTION_ID and b.LANGUAGE='US' and c.LEVEL_ID=10002
and c.level_value='&2' b.USER_PROFILE_OPTION_NAME like '&1';

Compile code of package and package body


set pages 999
set head off
select
'alter '||decode(object_type,'PACKAGE BODY','PACKAGE',
'VIEW','VIEW',object_type)
||' '||object_name||' compile '||
decode (object_type,'PACKAGE BODY','body')||';' from dba_objects
where status='INVALID'
order by decode(object_type,'PACKAGE',1,'VIEW',2,'PACKAGE BODY',3,4)
/

column owner format a5


compute sum of "TOTAL" on report
SELECT owner,object_type,COUNT(*)"TOTAL" FROM DBA_OBJECTS WHERE status='INVALID'
and owner='APPS' GROUP BY owner,object_type ;
and status ='ACTIVE'

This material is created by http://techgoeasy.com/ and is for your personal and non-commercial use
only.
13 [Queries for Apps DBA]

To find out the passwords of schema using apps password :-


Set serveroutput on
declare
sche_var varchar2(2000);
begin
sche_var:=fnd_oracle_schema.getopvalue('schema_name','apps password');
dbms_output.put_line(sche_var);
end;
/

Check XML file in MDS repository


exec JDR_UTILS.printDocument('/oracle/apps/fnd/framework/navigate/webui/test');

Check messages
select message_text from fnd_new_messages m, fnd_application a
where upper('&message_name') = m.message_name
and upper('&language_code') = m.language_code
and upper('&application_short_name') = a.application_short_name
and m.application_id = a.application_id
/

Check profile options

set linesize 140


set pagesize 132
column SHORT_NAME format A30
column NAME format A40
column LEVEL_VAL format 999999999
column VALUE format A60 wrap
select
p.profile_option_name SHORT_NAME,
n.user_profile_option_name NAME,
decode(v.level_id,
10001, 'Site',
10002, 'Application',

This material is created by http://techgoeasy.com/ and is for your personal and non-commercial use
only.
14 [Queries for Apps DBA]

10003, 'Responsibility',
10004, 'User',
'UnDef') LEVEL_SET,
v.level_value LEVEL_VAL,
v.profile_option_value VALUE
from fnd_profile_options p,
fnd_profile_option_values v,
fnd_profile_options_tl n
where p.profile_option_id = v.profile_option_id (+)
and p.profile_option_name = n.profile_option_name
and upper(n.user_profile_option_name) like upper('%&profile_name%')
/

SQL shows details about users connected to the ERP system

select usr.user_name "Apps Username"


,i.first_connect "First Connect Date"
,ses.sid
,ses.serial#
,ses.module
,v.spid "Oracle Server Process"
,ses.process "Application Server Process"
,rsp.responsibility_name "Responsibility Name"
,null "Responsibility Start Time"
,fuc.function_name "Function Name"
,i.function_type "Function Type"
,i.last_connect "Function Start Time"
from icx_sessions i
,fnd_logins l
,fnd_appl_sessions a
,fnd_user usr
,fnd_responsibility_tl rsp
,fnd_form_functions fuc
,gv$process v
,gv$session ses
where i.disabled_flag = 'N'
and i.login_id = l.login_id
and l.end_time is null
This material is created by http://techgoeasy.com/ and is for your personal and non-commercial use
only.
15 [Queries for Apps DBA]

and i.user_id = usr.user_id


and l.login_id = a.login_id
and a.audsid = ses.audsid
and l.pid = v.pid
and l.serial# = v.serial#
and i.responsibility_application_id = rsp.application_id(+)
and i.responsibility_id = rsp.responsibility_id(+)
and i.function_id = fuc.function_id(+)
and i.responsibility_id not in (select t1.responsibility_id
from fnd_login_responsibilities t1
where t1.login_id = l.login_id)
and rsp.language(+) = 'US'
and usr.user_name like '&APPS_USER_NAME'
union
select usr.user_name
,l.start_time
,ses.sid
,ses.serial#
,ses.module
,v.spid
,ses.process
,rsp.responsibility_name
,r.start_time
,null
,null
,null form_start_time
from fnd_logins l
,fnd_login_responsibilities r
,fnd_user usr
,fnd_responsibility_tl rsp
,gv$process v
,gv$session ses
where l.end_time is null
and l.user_id = usr.user_id
and l.pid = v.pid
and l.serial# = v.serial#
and v.addr = ses.paddr
and l.login_id = r.login_id(+)
and r.end_time is null
and r.responsibility_id = rsp.responsibility_id(+)
This material is created by http://techgoeasy.com/ and is for your personal and non-commercial use
only.
16 [Queries for Apps DBA]

and r.resp_appl_id = rsp.application_id(+)


and rsp.language(+) = 'US'
and r.audsid = ses.audsid
and usr.user_name like '&APPS_USER_NAME'
union
select usr.user_name
,l.start_time
,ses.sid
,ses.serial#
,ses.module
,v.spid
,ses.process
,null
,null
,frm.user_form_name
,ff.type
,f.start_time
from fnd_logins l
,fnd_login_resp_forms f
,fnd_user usr
,fnd_form_tl frm
,fnd_form_functions ff
,gv$process v
,gv$session ses
where l.end_time is null
and l.user_id = usr.user_id
and l.pid = v.pid
and l.serial# = v.serial#
and v.addr = ses.paddr
and l.login_id = f.login_id(+)
and f.end_time is null
and f.form_id = frm.form_id(+)
and f.form_appl_id = frm.application_id(+)
and frm.language(+) = 'US'
and f.audsid = ses.audsid
and ff.form_id = frm.form_id
and usr.user_name like '&APPS_USER_NAME'

This material is created by http://techgoeasy.com/ and is for your personal and non-commercial use
only.
17 [Queries for Apps DBA]

Important Concurrent Manager Tables


FND_NODES
FND_CONCURRENT_PROCESSES
FND_CONCURRENT_REQUESTS
FND_CONCURRENT_QUEUES
FND_CONCURRENT_PROGRAMS
FND_EXECUTABLES
FND_CP_SERVICES
FND_CONCURRENT_QUEUE_SIZE
FND_CONCURRENT_QUEUE_CONTENT
FND_CONCURRENT_PROGRAM_SERIAL
FND_CONCURRENT_TIME_PERIODS
FND_CONCURRENT_PROCESSORS

Database queries
Script to find the sid of the session you are logged in as
select distinct(sid) from v$mystat;

To see all active session


select username,osuser,sid,serial#, program,sql_hash_value,module from v$session where
username is not null
and status ='ACTIVE' and module is not null;

To see waiters
set linesize 1000
column waiting_session heading 'WAITING|SESSION'
column holding_session heading 'HOLDING|SESSION'
column lock_type format a15
column mode_held format a15
column mode_requested format a15

This material is created by http://techgoeasy.com/ and is for your personal and non-commercial use
only.
18 [Queries for Apps DBA]

select
waiting_session,
holding_session,
lock_type,
mode_held,
mode_requested,
lock_id1,
lock_id2
from
dba_waiters
/

This query will show all users that have active transactions and the rollback segment each
user is writing to:
col RBS format a15 trunc
col SID format 9999
col USER format a15 trunc
col COMMAND format a60 trunc
col status format a8 trunc
select r.name "RBS", s.sid, s.serial#, s.username "USER", t.status,
t.cr_get, t.phy_io, t.used_ublk, t.noundo,
substr(s.program, 1, 78) "COMMAND"
from v$session s, v$transaction t, v$rollname r
where t.addr = s.taddr
and t.xidusn = r.usn
order by t.cr_get, t.phy_io
/

To check Library Cache locks and pin


select /*+ all_rows */ w1.sid waiting_session,
h1.sid holding_session,
w.kgllktype lock_or_pin,
w.kgllkhdl address,
decode(h.kgllkmod, 0, 'None', 1, 'Null', 2, 'Share', 3, 'Exclusive',
'Unknown') mode_held,
decode(w.kgllkreq, 0, 'None', 1, 'Null', 2, 'Share', 3, 'Exclusive',

This material is created by http://techgoeasy.com/ and is for your personal and non-commercial use
only.
19 [Queries for Apps DBA]

'Unknown') mode_requested
from dba_kgllock w, dba_kgllock h, v$session w1, v$session h1
where
(((h.kgllkmod != 0) and (h.kgllkmod != 1)
and ((h.kgllkreq = 0) or (h.kgllkreq = 1)))
and
(((w.kgllkmod = 0) or (w.kgllkmod= 1))
and ((w.kgllkreq != 0) and (w.kgllkreq != 1))))
and w.kgllktype = h.kgllktype
and w.kgllkhdl = h.kgllkhdl
and w.kgllkuse = w1.saddr
and h.kgllkuse = h1.saddr
/

To monitor long running queries for the particular session


set linesize 1000
select
OPNAME,
sid,SOFAR/TOTALWORK*100,
to_char(start_time,'dd-mon-yy hh:mi') started,
elapsed_seconds/60,time_remaining/60
from
v$session_longops
where
sid =&sid

To see all lock objects


set term on;
set lines 130;
column sid_ser format a12 heading 'session,|serial#';
column username format a12 heading 'os user/|db user';
column process format a9 heading 'os|process';
column spid format a7 heading 'trace|number';
column owner_object format a35 heading 'owner.object';
column locked_mode format a13 heading 'locked|mode';
column status format a8 heading 'status';
select

This material is created by http://techgoeasy.com/ and is for your personal and non-commercial use
only.
20 [Queries for Apps DBA]

substr(to_char(l.session_id)||','||to_char(s.serial#),1,12) sid_ser,
substr(l.os_user_name||'/'||l.oracle_username,1,12) username,
l.process,
p.spid,
substr(o.owner||'.'||o.object_name,1,35) owner_object,
decode(l.locked_mode,
1,'No Lock',
2,'Row Share',
3,'Row Exclusive',
4,'Share',
5,'Share Row Excl',
6,'Exclusive',null) locked_mode,
substr(s.status,1,8) status
from
v$locked_object l,
all_objects o,
v$session s,
v$process p
where
l.object_id = o.object_id
and l.session_id = s.sid
and s.paddr = p.addr
and s.status != 'KILLED'
/

To see waits events across the database

set linesize 1000


column sid format 999
column username format a15 wrapped
column spid format a8
column event format a30 wrapped
column osuser format a12 wrapped
column machine format a25 wrapped
column program format a30 wrapped
select sw.sid sid
, p.spid spid
, s.username username
This material is created by http://techgoeasy.com/ and is for your personal and non-commercial use
only.
21 [Queries for Apps DBA]

, s.osuser osuser
, sw.event event
, s.machine machine
, s.program program
from v$session_wait sw
, v$session s
, v$process p
where s.paddr = p.addr
and event not in ('pipe get','client message')
and sw.sid = s.sid
/

To see session wait event


select sid,seq#,wait_time,event,seconds_in_wait,state from v$session_wait where sid in (&sid);

To see all user accessing that objects


set linesize 1000
column object format a30
column owner format a10
select * from v$access where object='&object_name'
/

This script gives information about the user sessions locking a particular object
set linesize 1000
column program format a15
column object format a15
select substr(username||'('|| se0.sid||')',1,5) "User Session",
substr(owner,1,5) "Object Owner",
substr(object,1,15) "Object",
se0.sid,
substr(serial#,1,6) "Serial#",
substr(program,1,15) "Program",
logon_time "Logon Time",
process "Unix Process"
from v$access ac, v$session se0
where ac.sid = se0.sid
and Object = '&package_name'
order by logon_time,"Object Owner","Object"

This material is created by http://techgoeasy.com/ and is for your personal and non-commercial use
only.
22 [Queries for Apps DBA]

To see execution sql plan for the hash value. This could be different from what we get from
explain plan as execution condition like bind variable changes the thing
set linesize 9999
column QUERY format a999
set pages 250
set head off
set verify off
select id,lpad(' ',2*(depth-1)) || depth ||'.' || nvl(position,0) || ' '|| operation || ' '|| options
|| ' '|| object_name ||' '
||'cost= '|| to_char(cost)||' '|| optimizer "QUERY"
from v$sql_plan
where hash_value = &sql_hash_value
order by child_number,id
/

To find database server location


select nvl(username,'ORACLE SHADOW PROCESS'),
machine from
v$session where username is null
and rownum < 2
/

SQL script displays the columns for each index of a table.


col table_name head 'Table Name' format a20
col index_name head 'Index Name' format a25
col column_name head 'Column Name' format a30

break on table_name on index_name

select table_name, index_name, column_name


from all_ind_columns
where table_name like upper('&Table_Name')
order by table_name, index_name, column_position
/

This material is created by http://techgoeasy.com/ and is for your personal and non-commercial use
only.
23 [Queries for Apps DBA]

Sql to show all the datafiles,redo logs and controlfiles in the database

set pages 50000

col file_type format a10 head 'File Type'


col tablespace_name format a20 head 'Tablespace Name'
col file_name format a41 head 'File Name'
col bytes format 999,999,999,999 head Bytes
col group# format 99999 head 'Group'
col member format a40 head 'Member'
col name print format a40 head 'File Name'

break on tablespace_name skip 1 on report

compute sum of bytes on tablespace_name


compute sum of bytes on report

select tablespace_name, file_name, bytes


from sys.dba_data_files
order by 1, file_id
/

ttitle off
break on file_type on report

select 'Redolog' file_type, log.group#, lf.member, log.bytes


from v$log log, v$logfile lf
where log.group# = lf.group#
/

select 'Control' file_type, name


from v$controlfile
/

This material is created by http://techgoeasy.com/ and is for your personal and non-commercial use
only.

You might also like