Tuesday, May 28, 2013

Find consuming sql from process id




Find consuming sql from process id


Get cpu consuming PID from top command and then execute below script to find relevant SQL statements along with SQL ID & Username

prompt "Please Enter The UNIX Process ID"
set lines 200
set long 20000
set pages 0
select
s.username su, sa.SQL_ID, sa.sql_fulltext
from v$process p,
v$session s,
v$sqlarea sa
where p.addr=s.paddr
and s.username is not null
and s.sql_address=sa.address(+)
and s.sql_hash_value=sa.hash_value(+)
and spid=&SPID;


for eg,

[oracle@igrexandc003d02 ~]$ top
top - 09:14:40 up 86 days, 10 min,  3 users,  load average: 13.56, 13.70, 14.04
Tasks: 818 total,  14 running, 804 sleeping,   0 stopped,   0 zombie
Cpu(s): 56.4%us,  0.9%sy,  0.0%ni, 42.5%id,  0.0%wa,  0.0%hi,  0.2%si,  0.0%st
Mem:  148704036k total, 113554696k used, 35149340k free,  1573068k buffers
Swap: 25165816k total,     3712k used, 25162104k free, 53273236k cached

   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 21899 oracle    20   0 32.4g  64m  32m R 99.7  0.0   1873:07 oracle
 21903 oracle    20   0 32.4g  63m  32m R 99.7  0.0   1826:24 oracle
 21905 oracle    20   0 32.3g  64m  32m R 99.7  0.0   1654:55 oracle
 21915 oracle    20   0 32.3g  63m  31m R 99.7  0.0   1826:48 oracle

[oracle@igrexandc003d02 ~]$ sqlplus "/as sysdba"

SQL*Plus: Release 11.2.0.3.0 Production on Tue May 28 09:14:43 2013

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

SQL> prompt "Please Enter The UNIX Process ID"
"Please Enter The UNIX Process ID"
SQL> set lines 200
set long 20000
SQL> SQL> set pages 0
SQL> select
  2  s.username su, sa.SQL_ID, sa.sql_fulltext
  3  from v$process p,
  4  v$session s,
  5  v$sqlarea sa
  6  where p.addr=s.paddr
and s.username is not null
  7    8  and s.sql_address=sa.address(+)
  9  and s.sql_hash_value=sa.hash_value(+)
 10  and spid=&SPID;
Enter value for spid: 21899
old  10: and spid=&SPID
new  10: and spid=21899
OBI_RO                         byk85pccx0ydb
                                             select T454950.MASTER_VALUE_CHAR as c1,
                                                  count(distinct T436164.CHANGE_ISSUE_NUM) as c2
                                             from
                                                  WC_PRODUCTIVITY_PROJ_D T436164 /* Dim_WC_PRODUCTIVITY_PROJ_D */ ,
                                                  WC_PRODUCTIVITY_PROJ_SNAP_D T454994 /* Dim_WC_PRODUCTIVITY_PROJ_SNAP_D */ ,

                                                  WC_PRODUCTIVITY_PROJ_CODE_D T455950 /* Dim_WC_PRODUCTIVITY_PROJ_CODE_D_Fina
                                             ncial_Unit */ ,
                                                  WC_PRODUCTIVITY_PROJ_NOTE_F T454975 /* Fact_WC_PRODUCTIVITY_PROJ_NOTE_F */
                                             ,
                                                  WC_PRODUCTIVITY_PROJ_CODE_D T454950 /* Dim_WC_PRODUCTIVITY_PROJ_CODE_D_Note
                                              */ ,
                                                  W_PROD_CAT_DH T441548 /* Dim_W_PROD_CAT_DH_Prod_Proj */
                                             where  ( T436164.CHANGE_ISSUE_NUM = T454975.CHANGE_ISSUE_NUM and T436164.PROD_CA
                                             T_WID = T441548.ROW_WID and T436164.SNAPSHOT_DT_WID = T454994.SNAPSHOT_DT_WID an
                                             d T436164.FINANCIAL_UNIT_WID = T455950.ROW_WID and T436164.SAVINGS_TYPE = 'Hard
                                             Savings P&L' and T436164.VARIANCE_TYPE = 'Productivity' and T441548.L6ANC_PRODCA
                                             T_NAME = 'Valves & Tube Fabrication' and T441548.L7ANC_PRODCAT_NAME = 'Valves &
                                             Tube Fabrication' and T441548.HIERARCHY_CODE = 'AUTO_CUSTOM_CATEGORY1' and T4549
                                             50.ROW_WID = T454975.NOTE_TYPE_WID and T454994.SNAPSHOT_NAME = '2013-05-27 (Dail
                                             y Refresh)' and T455950.GROUP_NAME = 'Asia-Pac' and T455950.MASTER_CODE <> 'ZZ -
                                              Hussmann' and (T436164.PROJECT_TYPE in ('Material Other / In bound Logistics',
                                             'Material Price', 'Material VAVE - external (Supplier driven)', 'Material VAVE -
                                              internal (IR driven)')) and T454975.CREATED_ON_DT >= TO_DATE('2012-05-07 00:00:
                                             00' , 'YYYY-MM-DD HH24:MI:SS') )
                                             group by T454950.MASTER_VALUE_CHAR
                                             order by c1


SQL>

No comments:

Post a Comment