Você está na página 1de 11

set feedback off set serveroutput on size 9999 column username format a20 column sql_text format a55

word_wrapped begin for x in (select username||'('||sid||','||serial#||') ospid = '|| process || ' program = ' || program username, to_char(LOGON_TIME,' Day HH24:MI') logon_time, to_char(sysdate,' Day HH24:MI') current_time, sql_address, sql_hash_value from v$session where status = 'ACTIVE' and rawtohex(sql_address) <> '00' and username is not null ) loop for y in (select sql_text from v$sqlarea where address = x.sql_address ) loop if ( y.sql_text not like '%listener.get_cmd%' and y.sql_text not like '%RAWTOHEX(SQL_ADDRESS)%' ) then dbms_output.put_line( '--------------------' ); dbms_output.put_line( x.username ); dbms_output.put_line( x.logon_time || ' ' || x.current_time || ' SQL#=' || x .sql_hash_value); dbms_output.put_line( substr( y.sql_text, 1, 250 ) ); end if; end loop; end loop; end; / 1) Blocking Sessions: select 'SID ' || l1.sid ||' is blocking ' || l2.sid blocking from v$lock l1, v$lock l2 where l1.block =1 and l2.request > 0 and l1.id1=l2.id1 and l1.id2=l2.id2 / 2) Currently Executing SQL: select sql_text,sql_id from v$sqlarea where users_executing > 0 / 3) Session status assosciated with OS Process id select s.username , s.sid , s.serial# , p.spid , last_call_et , status from V$SESSION s , V$PROCESS p where s.PADDR = p.ADDR and p.spid='&pid' /

Show all DDL locks select ses.username , ddl.session_id , ses.serial# , owner || '.' || ddl.name object , ddl.type , ddl.mode_held from dba_ddl_locks ddl , v$session ses where owner like '%userid%' and ddl.session_id = ses.sid / Show which row is locked select do.object_name , row_wait_obj# , row_wait_file# , row_wait_block# , row_wait_row# , dbms_rowid.rowid_create (1, ROW_WAIT_OBJ#, ROW_WAIT_FILE#, ROW_WAIT_BLOCK#, ROW_WAIT_ROW#) from v$session s , dba_objects do where sid=&sid and s.ROW_WAIT_OBJ# = do.OBJECT_ID /

select * from <table> where rowid=<rowid>; Statement to kill DDL locks select 'alter system kill session ''' || ddl.session_id || ',' || ses.seria l# || ''' immediate;' from dba_ddl_locks ddl , v$session ses where owner like '%userid%' and ddl.session_id = ses.sid /

User info SQL> select sid,event,blocking_session from v$session where sid='396' and wait_t ime=0; no rows selected SQL> select sid,event,blocking_session from v$session where sid='396'; SID EVENT ---------- ---------------------------------------------------------------BLOCKING_SESSION ---------------396 db file sequential read

SQL> select sid,event,blocking_session from v$session where sid='396' and wait_t ime='0'; no rows selected SQL> select sid,event,blocking_session from v$session where sid='396' and wait_t ime='100'; no rows selected SQL> select event, p1,p2,p3,state from v$session_wait where sid='396'; EVENT P1 ---------------------------------------------------------------- ---------P2 P3 STATE ---------- ---------- ------------------db file sequential read 55 396664 1 WAITED SHORT TIME --------------------col "SID/SERIAL" format a10 col username format a15 col osuser format a15 col program format a40 select 'Alter system kill session' ||s.sid || ',' || s.serial# "SID/SERIAL" , s.username , s.osuser , p.spid "OS PID" , s.program from v$session s , v$process p Where s.paddr = p.addr and s.username='RISMAN' order by to_number(p.spid) / -----------DYNAMIC SQL -----------Alter system kill session '194,2185'; select 'alter system kill session '''||to_char(sid)||','||to_char(serial#)||'''; ' -----------------------------------------------------194,21835 E138325 oracle@pdodb04 (J002) 405,476 E138325 oracle@pdodb04 (J003) 178,36260 E138325 oracle@pdodb04 (J004) oracle oracle oracle 1528 1531 1559

SID/SERIAL USERNAME OSUSER OS PID ---------- --------------- --------------- -----------------------PROGRAM ---------------------------------------379,47048 E138325 oracle 1566 oracle@pdodb04 (J005) 184,32330 E138325 oracle@pdodb04 (J006) 381,19407 E138325 oracle@pdodb04 (J007) oracle oracle 1568 1570

SID/SERIAL USERNAME OSUSER OS PID ---------- --------------- --------------- -----------------------PROGRAM ---------------------------------------415,40284 E138325 oracle 1580 oracle@pdodb04 (J009) 206,23174 E138325 Toad.exe 193,8631 Toad.exe E138325 sys06p sys06p 11379 11381

SID/SERIAL USERNAME OSUSER OS PID ---------- --------------- --------------- -----------------------PROGRAM ---------------------------------------375,2963 E138325 sys06p 11383 Toad.exe 393,60077 E138325 Toad.exe 177,15487 E138325 Toad.exe sys06p sys06p 12893 17420

SID/SERIAL USERNAME OSUSER OS PID ---------- --------------- --------------- -----------------------PROGRAM ---------------------------------------397,46289 E138325 sys06p 23071 Toad.exe 187,14001 E138325 Toad.exe 386,31837 E138325 Toad.exe Users current sql EXEC dbms_sqltune.accept_sql_profile(task_name => 'SQL_TUNING_1320774271010', ob ject_id => 1, profile_type =>DBMS_SQLTUNE.PX_PROFILE); sys06p sys06p 23073 25725

EXEC dbms_sqltune.accept_sql_profile(task_name => 'SQL_TUNING_1327459230510', ob ject_id => 1); --------------------------------------To find sql text and sql id -------------------------------------Select sql_text,sql_id from v$sqlarea where (address, hash_value) in (select sql_address, sql_hash_value from v$session) and sql_text like '%case when exclsn_rsn_tx like%';

Select sql_text,sql_id from v$sqlarea where (address, hash_value) in (select sql_address, sql_hash_value from v$session where username like '%CMS%'); --------------------------------------------SELECT spid,pid,s.sid,s.serial#, osuser, s.program, schemaname FROM v$process p, v$session s WHERE p.addr = s.paddr and s.username='RISMAN'; -----------------------------------------------To find sid and sql that is executing -----------------------------------------set linesize 200 set pagesize 32000 column sid format a10 column username format a10 column terminal format a10 column sql_text format a40 wrap Select ''''||s.sid||','||s.serial#||'''' SID ,s.status ,s.username ,s.terminal ,q.SQL_TEXT,q.sql_id ,q.command_type from v$session s ,(select distinct address ,sql_text,sql_id ,command_type from v$sql) q where q.address=s.sql_address order by s.sid /

------------COLUMN percent FORMAT 999.99 col mesage format a30 SELECT sid, to_char(start_time,'hh24:mi:ss') stime, message,( sofar/totalwork)* 100 percent FROM v$session_longops WHERE sofar/totalwork < 1 / select SID,SOFAR,TOTALWORK,UNITS,START_TIME,LAST_UPDATE_TIME,TIME_REMAINING from v$session_longops where sid='2839'; -------------------------------set linesize 200 set pagesize 32000 column sid format a10 column username format a10 column terminal format a10 column sql_text format a40 wrap Select ''''||s.sid||','||s.serial#||'''' SID ,s.status ,s.username ,s.terminal ,q.SQL_TEXT,q.sql_id ,q.command_type from v$session s ,(select distinct address ,sql_text,sql_id ,command_type from v$sql) q where q.address=s.sql_address order by s.sid / -------------------------------------------------Currents status of executing sql --------------------------------------------------set linesize 200 set pagesize 32000 column sid format 9999 column DONE_PCT format a15 column MINUTES_REM format 99999 select SID,to_char(ROUND((SOFAR*100)/TOTALWORK,2))||' %' DONE_PCT ,trunc(TIME_REMAINING/60) MINUTES_REM ,trunc(ELAPSED_SECONDS/60) MINUTES_ELAPSED ,MESSAGE from V$SESSION_LONGOPS order by start_time / --------------------------------wait events -----------------------

set linesize 200 set pagesize 32000 column SID format 99999 break on SID select * from v$session_event where SID='&SID' order by SID,TOTAL_TIMEOUTS desc,TOTAL_WAITS desc /

column sid format 9999 Select a.sql_text,a.sql_id,b.sid,b.status from v$sqlarea a,v$session b where (address, hash_value) in (select sql_address, sql_hash_value from v$session where username='RIS1H8' and sql_text like '%a.acct_ref_nb%') and a.hash_value=b.SQL_HASH_VALUE; ---------------------------select a.sid, a.serial#, a.program, b.sql_text from v$session a, v$sqlarea b whe re a.sql_address=b.address and a.username='SVCFRD'; ------------------------------------

SQL> ed Wrote file afiedt.buf 1 select 'alter system kill session ''''||a.sid||a.serial#||'''' 2 from v$sqlarea a,v$session b 3 where (address, hash_value) in 4 (select sql_address, sql_hash_value 5 from v$session 6 where username='CUSTSPRTBAT_USER' 7 and sql_text like '%a.acct_ref_nb%') 8* and a.hash_value=b.SQL_HASH_VALUE SQL> SQL> / ERROR: ORA-01756: quoted string not properly terminated SQL> ed Wrote file afiedt.buf 1 2 3 4 5 6 7 8* SQL> SQL> select 'alter system kill session '||'''||a.sid||a.serial#||''' from v$sqlarea a,v$session b where (address, hash_value) in (select sql_address, sql_hash_value from v$session where username='CUSTSPRTBAT_USER' and sql_text like '%a.acct_ref_nb%') and a.hash_value=b.SQL_HASH_VALUE /

'ALTERSYSTEMKILLSESSION'||'''||A.SID||A.SERIAL#| -----------------------------------------------alter system kill session '||a.sid||a.serial#||' alter system kill session '||a.sid||a.serial#||' alter system kill session '||a.sid||a.serial#||' alter system kill session '||a.sid||a.serial#||' alter system kill session '||a.sid||a.serial#||' alter system kill session '||a.sid||a.serial#||' alter system kill session '||a.sid||a.serial#||' alter system kill session '||a.sid||a.serial#||' alter system kill session '||a.sid||a.serial#||' alter system kill session '||a.sid||a.serial#||' 10 rows selected. SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> ed Wrote file afiedt.buf 1 2 3 4 5 6 7 8* SQL> SQL> SQL> select 'alter system kill session '||'''||b.sid||','||a.serial#||''' from v$sqlarea a,v$session b where (address, hash_value) in (select sql_address, sql_hash_value from v$session where username='CUSTSPRTBAT_USER' and sql_text like '%a.acct_ref_nb%') and a.hash_value=b.SQL_HASH_VALUE / '||A.SERIAL#|| -------------||a.serial#||' ||a.serial#||' ||a.serial#||' ||a.serial#||' ||a.serial#||' ||a.serial#||' ||a.serial#||' ||a.serial#||' ||a.serial#||' ||a.serial#||'

'ALTERSYSTEMKILLSESSION'||'''||B.SID -----------------------------------alter system kill session '||b.sid|| alter system kill session '||b.sid|| alter system kill session '||b.sid|| alter system kill session '||b.sid|| alter system kill session '||b.sid|| alter system kill session '||b.sid|| alter system kill session '||b.sid|| alter system kill session '||b.sid|| alter system kill session '||b.sid|| alter system kill session '||b.sid|| 10 rows selected. SQL> ed Wrote file afiedt.buf 1 2 3 4

select b.sid,a.serial from v$sqlarea a,v$session b where (address, hash_value) in (select sql_address, sql_hash_value

5 from v$session 6 where username='CUSTSPRTBAT_USER' 7 and sql_text like '%a.acct_ref_nb%') 8* and a.hash_value=b.SQL_HASH_VALUE SQL> / select b.sid,a.serial * ERROR at line 1: ORA-00904: "A"."SERIAL": invalid identifier SQL> ed Wrote file afiedt.buf 1 select b.sid,a.serial# 2 from v$sqlarea a,v$session b 3 where (address, hash_value) in 4 (select sql_address, sql_hash_value 5 from v$session 6 where username='CUSTSPRTBAT_USER' 7 and sql_text like '%a.acct_ref_nb%') 8* and a.hash_value=b.SQL_HASH_VALUE SQL> / select b.sid,a.serial# * ERROR at line 1: ORA-00904: "A"."SERIAL#": invalid identifier SQL> ed Wrote file afiedt.buf 1 format column sid 9999 2 format column serial# 999999 3 select b.sid,a.serial# 4 from v$sqlarea a,v$session b 5 where (address, hash_value) in 6 (select sql_address, sql_hash_value 7 from v$session 8 where username='CUSTSPRTBAT_USER' 9 and sql_text like '%a.acct_ref_nb%') 10* and a.hash_value=b.SQL_HASH_VALUE SQL> SQL> SQL> SQL> SQL> / format column sid 9999 * ERROR at line 1: ORA-00900: invalid SQL statement SQL> save 1.sql Created file 1.sql SQL> ed 1.sql; SQL> SQL> / format column sid 9999

* ERROR at line 1: ORA-00900: invalid SQL statement SQL> SQL> ed Wrote file afiedt.buf 1 2 3 4 5 6 7 8 9 10* SQL> SQL> format column sid 9999 format column serial# 999999 select b.sid,a.serial# from v$sqlarea a,v$session b where (address, hash_value) in (select sql_address, sql_hash_value from v$session where username='CUSTSPRTBAT_USER' and sql_text like '%a.acct_ref_nb%') and a.hash_value=b.SQL_HASH_VALUE ed 1.sql

SQL> SQL> @1 SQL> column sid format 9999 SQL> column serial# format 999999 SQL> select b.sid,a.serial# 2 from v$sqlarea a,v$session b 3 where (address, hash_value) in 4 (select sql_address, sql_hash_value 5 from v$session 6 where username='CUSTSPRTBAT_USER' 7 and sql_text like '%a.acct_ref_nb%') 8 and a.hash_value=b.SQL_HASH_VALUE 9 / select b.sid,a.serial# * ERROR at line 1: ORA-00904: "A"."SERIAL#": invalid identifier SQL> ed 1 SQL> SQL> SQL> SQL> SQL> SQL> SQL> 2 3 4 5 6 7 8 9

@1 column sid format 9999 column serial# format 999999 select b.sid,b.serial# from v$sqlarea a,v$session b where (address, hash_value) in (select sql_address, sql_hash_value from v$session where username='CUSTSPRTBAT_USER' and sql_text like '%a.acct_ref_nb%') and a.hash_value=b.SQL_HASH_VALUE /

SID SERIAL#

----- ------1678 30029 1703 2372 1776 16666 1777 35733 1798 65150 1851 9307 2032 60890 2064 41667 2141 22513 2155 13662 10 rows selected. SQL> ed 1 SQL> SQL> SQL> SQL> @1 column sid format 9999 column serial# format 999999 select b.sid,b.serial#,hash_value from v$sqlarea a,v$session b where (address, hash_value) in (select sql_address, sql_hash_value from v$session where username='CUSTSPRTBAT_USER' and sql_text like '%%') and a.hash_value=b.SQL_HASH_VALUE /

SID SERIAL# HASH_VALUE ----- ------- ---------1678 30029 3396124317 1703 2372 3396124317 1776 16666 3396124317 1777 35733 3396124317 1798 65150 3396124317 1851 9307 3396124317 2032 60890 3396124317 2064 41667 3396124317 2141 22513 3396124317 2155 13662 3396124317 10 rows selected.

Você também pode gostar