Advertisement
m4ly

ORACLE Diff

Jun 17th, 2015
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 4.15 KB | None | 0 0
  1. SELECT
  2.    p.spid,
  3.    s.sid,
  4.    s.process cli_process,
  5.    s.STATUS,t.disk_reads,
  6.    s.last_call_et/3600 last_call_et_Hrs,
  7.    s.action,
  8.    s.program,
  9.   t.sql_text
  10. FROM
  11.    v$session s,
  12.    v$sqlarea t,
  13.    v$process p
  14. WHERE
  15.    s.sql_address = t.address
  16. AND
  17.    s.sql_hash_value = t.hash_value
  18. AND
  19.    p.addr = s.paddr
  20. -- and
  21. --t.disk_reads > 10
  22. ORDER BY
  23.    t.disk_reads DESC;
  24.    
  25.  
  26.    -- You could find disk intensive full table scans with something like this:
  27.    
  28.    SELECT Disk_Reads DiskReads, Executions, SQL_ID, SQL_Text SQLText,
  29.    SQL_FullText SQLFullText
  30. FROM
  31. (
  32.    SELECT Disk_Reads, Executions, SQL_ID, LTRIM(SQL_Text) SQL_Text,
  33.       SQL_FullText, Operation, Options,
  34.       ROW_NUMBER() OVER
  35.          (Partition BY sql_text ORDER BY Disk_Reads * Executions DESC)
  36.          KeepHighSQL
  37.    FROM
  38.    (
  39.        SELECT Avg(Disk_Reads) OVER (Partition BY sql_text) Disk_Reads,
  40.           MAX(Executions) OVER (Partition BY sql_text) Executions,
  41.           t.SQL_ID, sql_text, sql_fulltext, p.operation,p.options
  42.        FROM v$sql t, v$sql_plan p
  43.        WHERE t.hash_value=p.hash_value AND p.operation='TABLE ACCESS'
  44.        AND p.options='FULL' AND p.object_owner NOT IN ('SYS','SYSTEM')
  45.        AND t.Executions > 1
  46.    )
  47.    ORDER BY DISK_READS * EXECUTIONS DESC
  48. )
  49. WHERE KeepHighSQL = 1
  50. AND rownum <=20;
  51.  
  52. -- Try this, it will give you queries currently running for more than 60 seconds. Note that it prints multiple lines per running query if the SQL has multiple lines. Look at the sid,serial# to see what belongs together.
  53. SELECT s.username,s.sid,s.serial#,s.last_call_et/60 mins_running,q.sql_text FROM v$session s
  54. JOIN v$sqltext_with_newlines q
  55. ON s.sql_address = q.address
  56.  WHERE STATUS='ACTIVE'
  57. AND TYPE <>'BACKGROUND'
  58. AND last_call_et> 5
  59. ORDER BY sid,serial#,q.piece;
  60.  
  61. -- The following query returns SQL statements that perform large numbers of disk reads (also includes the offending user and the number of times the query has been run):
  62.  
  63. SELECT t2.username, t1.disk_reads, t1.executions,
  64.     t1.disk_reads / DECODE(t1.executions, 0, 1, t1.executions) AS exec_ratio,
  65.     t1.command_type, t1.sql_text
  66.   FROM v$sqlarea t1, dba_users t2
  67.   WHERE t1.parsing_user_id = t2.user_id
  68.     AND t1.disk_reads > 50000
  69.   ORDER BY t1.disk_reads DESC;
  70.  
  71.   --   -- This one shows SQL that is currently "ACTIVE":-This one shows SQL that is currently "ACTIVE":-
  72.  
  73.   SELECT S.USERNAME, s.sid, s.osuser, t.sql_id, sql_text
  74. FROM v$sqltext_with_newlines t,V$SESSION s
  75. WHERE t.address =s.sql_address
  76. AND t.hash_value = s.sql_hash_value
  77. AND s.STATUS = 'ACTIVE'
  78. AND s.username <> 'SYSTEM'
  79. ORDER BY s.sid,t.piece;
  80.  
  81.  
  82.  
  83. SELECT sess.process, sess.STATUS, sess.username, sess.schemaname, SQL.sql_text
  84.   FROM v$session sess,
  85.        v$sql     SQL
  86.  WHERE SQL.sql_id(+) = sess.sql_id
  87.    AND sess.TYPE     = 'USER';
  88.    
  89.    
  90.    SELECT  * FROM gv$process WHERE spid=20096;
  91.    
  92.    
  93.    SELECT spid
  94. FROM v$session s, v$process p
  95. WHERE s.paddr = p.addr
  96. AND s.sid= 20096;
  97.  
  98.  
  99.  
  100. SELECT  NAME,
  101.     PHYRDS "Physical Reads",
  102.     round((PHYRDS / PD.PHYS_READS)*100,2) "Read %",
  103.     PHYWRTS "Physical Writes",
  104.     round(PHYWRTS * 100 / PD.PHYS_WRTS,2) "Write %",
  105.     fs.PHYBLKRD+FS.PHYBLKWRT "Total Block I/O's"
  106. FROM (
  107.     SELECT  SUM(PHYRDS) PHYS_READS,
  108.         SUM(PHYWRTS) PHYS_WRTS
  109.     FROM    v$filestat
  110.     ) pd,
  111.     v$datafile df,
  112.     v$filestat fs
  113. WHERE   df.FILE# = fs.FILE#
  114. ORDER   BY fs.PHYBLKRD+fs.PHYBLKWRT DESC;
  115.  
  116.  
  117. SELECT d.name, t.name, OBJECT_NAME(A.[OBJECT_ID]) AS [OBJECT NAME],      
  118.  I.[NAME] AS [INDEX NAME],      
  119.   A.LEAF_INSERT_COUNT,        
  120.   A.LEAF_UPDATE_COUNT,        
  121.   A.LEAF_DELETE_COUNT
  122.  
  123. FROM   SYS.DM_DB_INDEX_OPERATIONAL_STATS (NULL,NULL,NULL,NULL ) A        
  124. INNER JOIN SYS.INDEXES AS I          ON I.[OBJECT_ID] = A.[OBJECT_ID]  
  125. JOIN sys.TABLES t ON i.object_id = t.object_id      
  126. JOIN sys.DATABASES d ON a.database_id = d.database_id
  127. AND I.INDEX_ID = A.INDEX_ID WHERE  OBJECTPROPERTY(A.[OBJECT_ID],'IsUserTable') = 1
  128.  
  129. ORDER BY A.LEAF_INSERT_COUNT + A.LEAF_UPDATE_COUNT + A.LEAF_DELETE_COUNT DESC;
  130.  
  131.  
  132.  
  133. SELECT d.name,
  134.        i.asynch_io
  135. FROM   v$datafile d,
  136.        v$iostat_file i
  137. WHERE  d.file# = i.file_no
  138. AND    i.filetype_name  = 'Data File';
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement