• Oracle 监控语句整理(包括TOP SQL等)


    希望能对大家有所帮助!

    很多时候大家想查看oracle数据库中的sql语句执行情况,但是又不知道如何是好,今天在这里为大家提供一个sql语句,大家可以通过以下的sql语句查询Oracle数据库中Top Sql情况:


    查询结果可按照PCT、总耗费时间、CPU使用时间、平均执行时间、执行次数、关联行数等排序。

    TOP sql语句如下:

    select round(100 * a.pct, 2) pct, 
           round(a.elapsed_time/1000000, 2) elapsed_time, 
           round(a.elapsed_time/a.executions/1000) ms_by_exec, 
           round(a.cpu_time/1000000, 2) cpu_time, 
           a.buffer_gets total_cost, 
           round(a.buffer_gets/a.executions) elem_cost, 
           a.executions exec, 
           a.rows_processed nb_rows, 
           s.sql_text 
    from (select * 
          from (select elapsed_time, 
                       ratio_to_report(elapsed_time) over () pct, 
                       cpu_time, 
                       buffer_gets, 
                       executions, 
                       rows_processed, 
                       address, 
                       hash_value 
                from  v$sql 
                order by elapsed_time desc) 
          where rownum < 26) a, 
         v$sqlarea s 
    where a.address = s.address 
      and a.hash_value = s.hash_value 
      and a.executions <> 0 
    order by pct desc, cpu_time desc

    session相关:

    select sesion.sid, 
        username, 
        osuser, 
        machine, 
        sesion.module, 
        status, 
        optimizer_mode, 
        sql_text
      from v$sqlarea sqlarea, v$session sesion 
     where sesion.sql_hash_value = sqlarea.hash_value(+) 
       and sesion.sql_address    = sqlarea.address(+) 
       and sesion.username is not null 
    order by username, sql_text

    locks相关:

    select 
      username, 
      osuser, 
      machine, 
      s.module, 
      l.sid, 
      decode(l.type, 
         'MR', 'Media Recovery', 
         'RT', 'Redo Thread', 
         'UN', 'User Name', 
         'TX', 'Transaction', 
         'TM', 'DML', 
         'UL', 'PL/SQL User Lock', 
         'DX', 'Distributed Xaction', 
         'CF', 'Control File', 
         'IS', 'Instance State', 
         'FS', 'File Set', 
         'IR', 'Instance Recovery', 
         'ST', 'Disk Space Transaction', 
         'TS', 'Temp Segment', 
         'IV', 'Library Cache Invalidation', 
         'LS', 'Log Start or Switch', 
         'RW', 'Row Wait', 
         'SQ', 'Sequence Number', 
         'TE', 'Extend Table', 
         'TT', 'Temp Table', l.type) type, 
      decode(lmode, 
         0, 'None', 
         1, 'Null', 
         2, 'Row-S (SS)', 
         3, 'Row-X (SX)', 
         4, 'Share', 
         5, 'S/Row-X (SSX)', 
         6, 'Exclusive', lmode) lmode, 
      decode(request, 
         0, 'None', 
         1, 'Null', 
         2, 'Row-S (SS)', 
         3, 'Row-X (SX)', 
         4, 'Share', 
         5, 'S/Row-X (SSX)', 
         6, 'Exclusive', request) request, 
      decode(block, 
         0, 'Not Blocking', 
         1, 'Blocking', 
         2, 'Global', block) block, 
      owner, 
      object_name, 
      a.sql_text 
    from v$locked_object lo, all_objects ao, v$lock l, v$session s, v$sqlarea a 
    where lo.object_id = ao.object_id 
      and l.sid = lo.session_id 
      and s.sid = l.sid 
      and a.address = s.sql_address(+) 
      and a.hash_value = s.sql_hash_value(+) 
    order by username

    foreignKeysWithoutIndexes相关:

    select user_cons_columns.table_name || '.' || user_constraints.constraint_name as "Foreign key" 
      from user_cons_columns, user_constraints 
      where user_constraints.constraint_type = 'R' and 
        user_constraints.constraint_name = user_cons_columns.constraint_name and 
    user_cons_columns.table_name || '.' || user_cons_columns.column_name not in (select table_name || '.' || column_name from user_ind_columns)

    invalid objects相关:

    select object_name from user_objects where status = 'INVALID'

    disabled Constraints相关:

    select table_name || '.' || constraint_name as "Constraint" 
         from user_constraints where status = 'DISABLED'

    Library Cache Ratio/Row Cache Ratio/Cache Hit Ratio相关:

    select round(100*(1-sum(reloads)/sum(pins)),2) || '% Library Cache Ratio' Ratio from v$librarycache union 
    select round(100*(1-sum(getmisses)/sum(gets)),2) || '% Row Cache Ratio' from v$rowcache 
    union 
    select round(100*(1-(phy.value / (cur.value + con.value))),2) || '% Cache Hit Ratio' 
    from v$sysstat cur, v$sysstat con, v$sysstat phy 
    where cur.name = 'db block gets' and 
          con.name = 'consistent gets' and 
          phy.name = 'physical reads'
    
    oracle.parameters = select * from v$parameter

    rollback Segment统计相关:

    Select rn.Name "Rollback Segment", rs.RSSize/1024 "Size (KB)", rs.Gets "Gets", 
           rs.waits "Waits", (rs.Waits/rs.Gets)*100 "% Waits", 
           rs.Shrinks "# Shrinks", rs.Extends "# Extends" 
    from   v$RollName rn, v$RollStat rs
    where rn.usn = rs.usn

    statistics 相关:

    select name statistic, value system, 
    (select sum(value) from v$sesstat ses where ses.statistic# = sys.statistic#) sessions 
    from v$sysstat sys

    events 相关:

    select event, time_waited system, 
    (select sum(time_waited) from v$session_event ses where ses.event = sys.event) sessions 
    from v$system_event sys 
    where event != 'Null event' and 
      event != 'rdbms ipc message' and 
      event != 'pipe get' and 
      event != 'virtual circuit status' and 
      event != 'lock manager wait for remote message' and 
      event not like '% timer' and 
    event not like 'SQL*Net message from %'

    datafile IO 相关:

    select   df.NAME filename, 
             ts.name tablespace_name, 
             PHYRDS physical_reads, 
             round((PHYRDS / pd.PHYS_READS)*100,2) pct_reads, 
             PHYWRTS physical_writes, 
             round(PHYWRTS * 100 / pd.PHYS_WRTS,2) pct_writes, 
             fs.PHYBLKRD + fs.PHYBLKWRT total_block_io 
    from    (select sum(PHYRDS) phys_reads, 
                    sum(PHYWRTS) phys_wrts 
             from v$filestat) pd, 
             v$datafile df, 
             v$filestat fs, 
             v$tablespace ts 
    where    df.FILE# = fs.FILE# and df.ts# = ts.ts# 
    order by fs.PHYBLKRD + fs.PHYBLKWRT desc

    tablespace相关:

    select   TABLESPACE_NAME, 
             INITIAL_EXTENT, 
             NEXT_EXTENT, 
             MIN_EXTENTS, 
             MAX_EXTENTS, 
             PCT_INCREASE, 
             MIN_EXTLEN, 
             STATUS, 
             CONTENTS, 
             LOGGING, 
             EXTENT_MANAGEMENT, 
             ALLOCATION_TYPE 
    from     user_tablespaces 
    order by TABLESPACE_NAME

     tablespace Freespace相关:

    select   ddf.TABLESPACE_NAME, 
             ddf.BYTES tablespace_size, 
             ddf.BYTES-nvl(DFS.BYTES,0) used, 
             round(((ddf.BYTES-nvl(dfs.BYTES,0))/ddf.BYTES)*100,2) pct_used, 
             nvl(dfs.BYTES,0) free, 
             round((1-((ddf.BYTES-nvl(dfs.BYTES,0))/ddf.BYTES))*100,2) pct_free 
    from    (select t.name TABLESPACE_NAME, 
                    sum(BYTES) bytes 
             from   v$datafile d, v$tablespace t 
             where t.ts# = d.ts# 
             group  by t.name) ddf, 
            (select TABLESPACE_NAME, 
                    sum(BYTES) bytes 
             from   user_free_space 
             group  by TABLESPACE_NAME) dfs 
    where    ddf.TABLESPACE_NAME=dfs.TABLESPACE_NAME(+) 
    order by ((ddf.BYTES-nvl(dfs.BYTES,0))/ddf.BYTES) desc
  • 相关阅读:
    instanceof方法
    Java 实现接口计算圆柱的体积和面积并添加颜色
    Java代码执行顺序
    Java饿汉单例模式
    斐波那契数(动态规划和递归)
    Java 接口实现计算器加减乘除(字符交互界面)
    局部内部类详解_转载
    Java引用类型
    递归打印字符串
    时间复杂度
  • 原文地址:https://www.cnblogs.com/andyspan/p/5805368.html
Copyright © 2020-2023  润新知