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

SQL Session Running For Long

1. The document provides steps to identify a SQL statement that is running long by getting the session ID (SID) from the process or session process ID (SPID), and using the SID to get the SQL_ID from v$session. It then shows how to use the SQL_ID to display the execution plan from dbms_xplan.display_cursor. 2. An example is shown of using @getsid to get the SID from a given SPID and using the SID to get the SQL_ID and display the execution plan. 3. Additional steps are listed for monitoring long running operations.

Uploaded by

Muhd Q
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
304 views

SQL Session Running For Long

1. The document provides steps to identify a SQL statement that is running long by getting the session ID (SID) from the process or session process ID (SPID), and using the SID to get the SQL_ID from v$session. It then shows how to use the SQL_ID to display the execution plan from dbms_xplan.display_cursor. 2. An example is shown of using @getsid to get the SID from a given SPID and using the SID to get the SQL_ID and display the execution plan. 3. Additional steps are listed for monitoring long running operations.

Uploaded by

Muhd Q
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 6

If any session is running long then:

1.get the sid


2.select sql_id from v$session where sid =' ';
3.select * from table(dbms_xplan.display_cursor('sql_id value'));

select * from table(dbms_xplan.display_cursor('ay44jj6hphbuz'));

PLAN_TABLE_OUTPUT
-----------------------------------------------------------------------------------
-------------------------------------------------
SQL_ID ay44jj6hphbuz, child number 0

begin fndcp_tmsrv.read_message(:ec, :to, :typ, :enddt, :rid, :retid,


:nl, :nc, :dl, :secgrp, :usr, :rspap, :rsp, :log, :app, :prg, :argc,
:orgt, :orgid, :a1, :a2, :a3, :a4, :a5, :a6, :a7, :a8, :a9,
:a10, :a11, :a12, :a13, :a14, :a15, :a16, :a17, :a18, :a19, :a20); end;

NOTE: cannot fetch plan for SQL_ID: ay44jj6hphbuz, CHILD_NUMBER: 0


Please verify value of SQL_ID and CHILD_NUMBER;
It could also be that the plan is no longer in cursor cache (check
v$sql_plan)

11 rows selected.

Elapsed: 00:00:00.44

Example:

SYS@OADEV> @sid 1145

SID SERIAL# LT User OSUSER SPID PROGRAM


ETime Status/Action/Machine
----- ------- ---------------- ---------- ---------- -------- ------------
--------- ----------------------------------------
1145 4296 08/07 23:17:30 SYS oracle 2093094 sqlplus@us01 .
00 ACTIVE-us01u123

1 row selected.

Elapsed: 00:00:00.02
SYS@OADEV> select sql_id from v$session where sid='1145';

SQL_ID
-------------
b4a5qz4v3vyfg

1 row selected.

Elapsed: 00:00:00.00
SYS@OADEV> select * from table(dbms_xplan.display_cursor('b4a5qz4v3vyfg'));

PLAN_TABLE_OUTPUT
-----------------------------------------------------------------------------------
-------------------------------------------------
SQL_ID b4a5qz4v3vyfg, child number 0
-------------------------------------
select sql_id from v$session where sid='1145'

Plan hash value: 3035287522

---------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)|
---------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | | 1 (100)|
| 1 | NESTED LOOPS | | 1 | 22 | 0 (0)|
|* 2 | FIXED TABLE FIXED INDEX| X$KSUSE (ind:1) | 1 | 18 | 0 (0)|
|* 3 | FIXED TABLE FIXED INDEX| X$KSLED (ind:2) | 1 | 4 | 0 (0)|
---------------------------------------------------------------------------------

Predicate Information (identified by operation id):


---------------------------------------------------

2 - filter(("S"."INDX"=1145 AND BITAND("S"."KSUSEFLG",1)<>0 AND


BITAND("S"."KSSPAFLG",1)<>0 AND "S"."INST_ID"=USERENV('INSTANCE')))
3 - filter("S"."KSUSEOPC"="E"."INDX")

22 rows selected.

Elapsed: 00:00:00.16
SYS@OADEV>

4.v$session_longops
5.select distinct qcsid from v$px_session;
6.select undoosb,begin_time from v$undostat order by begin_time;

Get sid from spid:

select sid from v$session,v$process where spid= and addr=paddr;

@getspid or @getpid

***********************************************************************************
*

SYS@OADEV> @getsid
Enter value for spid: 2744346

ACTION STATUS
-------------------------------- --------
MODULE
------------------------------------------------
PROGRAM
--------------------------------------------------------------------------------
SPID PROCESS SID SERIAL# CONNECT_TIME
------------ ------------ ---------- ---------- ------------------------
ACTIVE
Disco10
oracle@us01u123
2744346 2744346 1581 9096 07-AUG-12 22:00:57

Elapsed: 00:00:00.02
SYS@OADEV> @sid 1581

SID SERIAL# LT User OSUSER SPID PROGRAM


ETime Status/Action/Machine
----- ------- ---------------- ---------- ---------- -------- ------------
--------- ----------------------------------------
1581 9096 08/07 22:00:57 LSSCHGRP oracle 2744346 oracle@us01u
83.45 ACTIVE-us01u123

Elapsed: 00:00:00.01
SYS@OADEV> select sql_id from v$session where sid=1581;

SQL_ID
-------------
99kzy3nzrb95c

Elapsed: 00:00:00.01
SYS@OADEV> select * from table(dbms_xplan.display_cursor('99kzy3nzrb95c'));

PLAN_TABLE_OUTPUT
-----------------------------------------------------------------------------------
-------------------------------------------------
SQL_ID 99kzy3nzrb95c, child number 0
-------------------------------------
SELECT * FROM EUL5_B111011141439Q1V1

Plan hash value: 827410869

-----------------------------------------------------------------------------------
---------------
| Id | Operation | Name
|
-----------------------------------------------------------------------------------
---------------
| 0 | SELECT STATEMENT |
|
| 1 | NESTED LOOPS OUTER |
|
| 152 | NESTED LOOPS |
|
| 153 | NESTED LOOPS |
|
| 154 | NESTED LOOPS |
|
| 155 | NESTED LOOPS |
|
| 156 | NESTED LOOPS OUTER |
|
| 157 | NESTED LOOPS |
|
| 158 | NESTED LOOPS |
|
| 159 | NESTED LOOPS |
|
| 160 | NESTED LOOPS |
|
| 161 | NESTED LOOPS |
|
| 162 | NESTED LOOPS |
|
| 163 | NESTED LOOPS |
|
| 164 | NESTED LOOPS |
|
| 165 | NESTED LOOPS OUTER |
|
| 166 | NESTED LOOPS OUTER |
|
| 167 | NESTED LOOPS |
|
| 168 | TABLE ACCESS FULL | OKC_K_ITEMS
|
| 169 | TABLE ACCESS BY INDEX ROWID|
CSI_ITEM_INSTANCES |
|*170 | INDEX UNIQUE SCAN |
CSI_ITEM_INSTANCES_U01 |
|*171 | INDEX UNIQUE SCAN |
CSI_ITEM_INSTANCES_U01 |
| 172 | TABLE ACCESS BY INDEX ROWID |
LDMF_LS_PARENT_INSTANCES |
|*173 | INDEX UNIQUE SCAN |
LDMF_LS_PARENT_INSTANCES_U1 |
| 174 | TABLE ACCESS BY INDEX ROWID | OKC_K_LINES_B
|
|*175 | INDEX UNIQUE SCAN | OKC_K_LINES_B_U1
|
|*176 | INDEX UNIQUE SCAN |
OKC_K_HEADERS_B_U1 |
| 177 | TABLE ACCESS BY INDEX ROWID |
OE_ORDER_LINES_ALL |
|*178 | INDEX UNIQUE SCAN |
OE_ORDER_LINES_U1 |
| 179 | TABLE ACCESS BY INDEX ROWID |
HZ_CUST_SITE_USES_ALL |
|*180 | INDEX UNIQUE SCAN |
HZ_CUST_SITE_USES_U1 |
|*181 | TABLE ACCESS BY INDEX ROWID |
HZ_CUST_ACCT_SITES_ALL |
|*182 | INDEX UNIQUE SCAN |
HZ_CUST_ACCT_SITES_U1 |
| 183 | TABLE ACCESS BY INDEX ROWID | HZ_PARTY_SITES
|
|*184 | INDEX UNIQUE SCAN |
HZ_PARTY_SITES_U1 |
|*185 | INDEX UNIQUE SCAN | HZ_LOCATIONS_U1
|
| 186 | TABLE ACCESS BY INDEX ROWID | HZ_CUST_ACCOUNTS
|
|*187 | INDEX UNIQUE SCAN |
HZ_CUST_ACCOUNTS_U1 |
| 188 | TABLE ACCESS BY INDEX ROWID |
LFIN_OM_CUST_ADDL_INFO |
|*189 | INDEX UNIQUE SCAN |
UNIQUE_CUSTACCTID |
|*190 | TABLE ACCESS BY INDEX ROWID | HZ_PARTIES
|
|*191 | INDEX UNIQUE SCAN | HZ_PARTIES_U1
|
| 192 | TABLE ACCESS BY INDEX ROWID |
HZ_CUST_SITE_USES_ALL |
|*193 | INDEX UNIQUE SCAN |
HZ_CUST_SITE_USES_U1 |
|*194 | TABLE ACCESS BY INDEX ROWID |
HZ_CUST_ACCT_SITES_ALL |
|*195 | INDEX UNIQUE SCAN |
HZ_CUST_ACCT_SITES_U1 |
| 196 | TABLE ACCESS BY INDEX ROWID | HZ_PARTY_SITES
|
|*197 | INDEX UNIQUE SCAN |
HZ_PARTY_SITES_U1 |
| 198 | TABLE ACCESS BY INDEX ROWID | HZ_LOCATIONS
|
| 217 | NESTED LOOPS |
|
| 218 | NESTED LOOPS |
|
| 219 | NESTED LOOPS |
|
| 220 | NESTED LOOPS |
|
| 229 | NESTED LOOPS OUTER |
|
| 230 | NESTED LOOPS |
|
| 231 | NESTED LOOPS |
|
|*232 | TABLE ACCESS FULL |
RA_CUSTOMER_TRX_ALL |
| 233 | TABLE ACCESS BY INDEX ROWID |
MTL_SYSTEM_ITEMS_B |
|*244 | INDEX UNIQUE SCAN |
HZ_CUST_ACCT_SITES_U1 |
| 255 | TABLE ACCESS BY INDEX ROWID | HZ_CUST_ACCOUNTS
|
|*256 | INDEX UNIQUE SCAN |
HZ_CUST_ACCOUNTS_U1 |
| 257 | TABLE ACCESS BY INDEX ROWID |
LFIN_OM_CUST_ADDL_INFO |
|*258 | INDEX UNIQUE SCAN |
UNIQUE_CUSTACCTID |
|*259 | TABLE ACCESS BY INDEX ROWID | HZ_PARTIES
|
|*260 | INDEX UNIQUE SCAN | HZ_PARTIES_U1
|
|*261 | INDEX RANGE SCAN |
HZ_LOC_ASSIGNMENTS_U1 |
|*262 | TABLE ACCESS BY INDEX ROWID |
LA_EXTENSION_VALUES |
|*263 | INDEX RANGE SCAN |
LFND_LA_EXT_VALUES_RT |
| 264 | TABLE ACCESS BY INDEX ROWID | JTF_RS_SALESREPS
|
|*265 | INDEX UNIQUE SCAN |
JTF_RS_SALESREPS_U1 |
-----------------------------------------------------------------------------------
---------------

Predicate Information (identified by operation id):


---------------------------------------------------

6 - filter(NVL("C"."CUSTOMER_NAME",'NA') LIKE '%')


14 -
filter((DECODE(NVL("II2"."SERIAL_NUMBER","II1"."SERIAL_NUMBER"),'SERVICE',GREATEST(
"T"."TRX_DATE","X"."SALE_DATE"),"X"."SALE_DATE")<=TO_DATE(' 2015-12-
31 00:00:00',
'syyyy-mm-dd hh24:mi:ss') AND
DECODE(NVL("II2"."SERIAL_NUMBER","II1"."SERIAL_NUMBER"),'SER

VICE',GREATEST("T"."TRX_DATE","X"."SALE_DATE"),"X"."SALE_DATE")>=TO_DATE(' 2011-01-
01
00:00:00', 'syyyy-mm-dd hh24:mi:ss')))
65 - access("LOC"."LOCATION_ID"="PARTY_SITE"."LOCATION_ID")
66 - access("LOC"."LOCATION_ID"="LOC_ASSIGN"."LOCATION_ID")
filter(NVL("ACCT_SITE"."ORG_ID",(-99))=NVL("LOC_ASSIGN"."ORG_ID",(-99)))
67 - access("ADS"."CUSTOMER_ID"="C2"."CUSTOMER_ID")
filter("ADS"."CUSTOMER_ID"="C2"."CUSTOMER_ID")
NVL("ASITE"."ORG_ID",1691)=1688 OR NVL("ASITE"."ORG_ID",1691)=1690 OR
NVL("ASITE"."ORG_ID",1691)=1691 OR NVL("ASITE"."ORG_ID",1691)=1881))
127 - access("LOC"."LOCATION_ID"="PSITE"."LOCATION_ID")
129 - access("ASITE"."CUST_ACCOUNT_ID"="CUST_ACCT"."CUST_ACCOUNT_ID")
131 - access("CUST_ACCT"."PARTY_ID"="PARTY"."PARTY_ID")
132 - filter(("OOH"."ORG_ID"=1686 OR "OOH"."ORG_ID"=1687 OR "OOH"."ORG_ID"=1688 OR
"OOH"."ORG_ID"=1690 OR "OOH"."ORG_ID"=1691 OR "OOH"."ORG_ID"=1881))
133 - access("OOL"."HEADER_ID"="OOH"."HEADER_ID")
134 - filter(("CTXL"."INTERFACE_LINE_CONTEXT"='ORDER ENTRY' AND
"CTXL"."LINE_TYPE"='LINE'))
135 - access("CTXL"."INTERFACE_LINE_ATTRIBUTE6"=TO_CHAR("OOL"."LINE_ID"))
136 - filter("CTXL"."ORG_ID"="CTX"."ORG_ID")
137 - access("CTXL"."CUSTOMER_TRX_ID"="CTX"."CUSTOMER_TRX_ID")
265 - access("S"."SALESREP_ID"="SAL"."SALESREP_ID" AND
"S"."ORG_ID"="SAL"."ORG_ID")

Note
-----
- rule based optimizer used (consider using cbo)

462 rows selected.

Elapsed: 00:00:00.22

You might also like