zoukankan      html  css  js  c++  java
  • Oracle其他常用统计语句

    1、文件IO统计
    select TS.Name, DF.Name File_Name,
        FS.Phyblkrd  Blocks_Read,
        FS.Phyblkwrt Blocks_Written,
        FS.Phyblkrd+FS.Phyblkwrt Total_IOs
    FROM  V$FILESTAT FS, V$DATAFILE DF, v$tablespace TS
    WHERE DF.File#=FS.File#  AND DF.ts#=TS.TS#
    order by FS.Phyblkrd+FS.Phyblkwrt desc;

    2、表空间使用情况统计
    SELECT upper(f.tablespace_name) "表空间名", d.Tot_grootte_Mb "表空间大小(M)",
           d.Tot_grootte_Mb - f.total_bytes "已使用空间(M)",
           to_char(round((d.Tot_grootte_Mb - f.total_bytes) / d.Tot_grootte_Mb * 100,2),'990.99') "使用比",
           f.total_bytes "空闲空间(M)",
           f.max_bytes "最大块(M)"
    FROM
       (SELECT tablespace_name, round(SUM(bytes)/(1024*1024),2) total_bytes,
               round(MAX(bytes)/(1024*1024),2) max_bytes
        FROM sys.dba_free_space
        GROUP BY tablespace_name) f,
      (SELECT dd.tablespace_name, round(SUM(dd.bytes)/(1024*1024),2) Tot_grootte_Mb
        FROM sys.dba_data_files dd
        GROUP BY dd.tablespace_name) d
    WHERE d.tablespace_name = f.tablespace_name
    ORDER BY 4 DESC

    SELECT t.*
    FROM
       (  SELECT D.TABLESPACE_NAME, SPACE "SUM_SPACE(M)", BLOCKS SUM_BLOCKS,
                 SPACE - NVL(FREE_SPACE, 0) "USED_SPACE(M)",
              ROUND((1 - NVL(FREE_SPACE, 0) / SPACE) * 100, 2) "USED_RATE(%)",
              FREE_SPACE "FREE_SPACE(M)"
           FROM
              (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES) / (1024 * 1024), 2) SPACE,
                      SUM(BLOCKS) BLOCKS
                FROM DBA_DATA_FILES
                GROUP BY TABLESPACE_NAME) D,
              (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES) / (1024 * 1024), 2) FREE_SPACE
                FROM DBA_FREE_SPACE
                GROUP BY TABLESPACE_NAME) F
           WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)
      UNION ALL --if have tempfile
          SELECT D.TABLESPACE_NAME, SPACE "SUM_SPACE(M)", BLOCKS SUM_BLOCKS,
               USED_SPACE "USED_SPACE(M)",
               ROUND(NVL(USED_SPACE, 0) / SPACE * 100, 2) "USED_RATE(%)",
              SPACE - USED_SPACE "FREE_SPACE(M)"
          FROM
            (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES) / (1024 * 1024), 2) SPACE,
                    SUM(BLOCKS) BLOCKS
              FROM DBA_TEMP_FILES
              GROUP BY TABLESPACE_NAME) D,
            (SELECT TABLESPACE, ROUND(SUM(BLOCKS * 8192) / (1024 * 1024), 2) USED_SPACE
              FROM V$SORT_USAGE
              GROUP BY TABLESPACE) F
      WHERE D.TABLESPACE_NAME = F.TABLESPACE(+)
    ) t
    ORDER BY "USED_RATE(%)" desc;

    3、查看回滚段状态
    SELECT a.segment_name,b.status
    FROM Dba_Rollback_Segs a, v$rollstat b
    WHERE a.segment_id=b.usn
    ORDER BY 2

    4、查看哪些session正在使用哪些回滚段
    /*col 回滚段名 format a10
      col SID format 9990
      col 用户名 format a10
      col 操作程序 format a80
      col status format a6 trunc*/

    SELECT r.name "回滚段名", s.sid, s.serial#,
           s.username "用户名", s.status,
           s.SQL_ADDRESS, t.cr_get, t.phy_io,
           t.used_ublk, t.noundo, substr(s.program, 1, 78) "操作程序"
    FROM  sys.v_$session s,sys.v_$transaction t,sys.v_$rollname r
    WHERE t.addr = s.taddr and t.xidusn = r.usn
    ORDER BY t.cr_get, t.phy_io

    5、查看无法扩展的段
    SELECT segment_name, segment_type, owner, a.tablespace_name "tablespacename",
           initial_extent/1024 "inital_extent(K)", next_extent/1024 "next_extent(K)",
           pct_increase, b.bytes/1024 "tablespace max free space(K)", b.sum_bytes/1024 "tablespace total free space(K)"
    FROM dba_segments a,
         ( SELECT tablespace_name,MAX(bytes) bytes,SUM(bytes) sum_bytes 
           FROM dba_free_space GROUP BY tablespace_name) b
    WHERE a.tablespace_name=b.tablespace_name
       AND next_extent>b.bytes
    ORDER BY 4,3,1

    6、查看系统锁
    SELECT A.OWNER, A.OBJECT_NAME, B.XIDUSN, B.XIDSLOT, B.XIDSQN,
           B.SESSION_ID, B.ORACLE_USERNAME, B.OS_USER_NAME, B.PROCESS,
           B.LOCKED_MODE, C.MACHINE, C.STATUS, C.SERVER, C.SID, C.SERIAL#, C.PROGRAM
    FROM ALL_OBJECTS A, V$LOCKED_OBJECT B, SYS.GV_$SESSION C
    WHERE A.OBJECT_ID = B.OBJECT_ID 
      AND B.PROCESS = C.PROCESS
    ORDER BY 1,2

    7、查看Io较大正在运行的session
    SELECT se.sid, se.serial#, pr.SPID, se.username, se.status, se.terminal,
           se.program, se.MODULE, se.sql_address, st.event, st.p1text, st.p1,
           st.p2, st.p3, st.STATE, st.SECONDS_IN_WAIT, si.physical_reads,
           si.block_changes
    FROM v$session se, v$session_wait st, v$sess_io si, v$process pr
    WHERE st.sid=se.sid
      AND st.sid=si.sid
      AND se.PADDR=pr.ADDR
      AND se.sid>6
      AND st.wait_time=0
      AND st.event NOT LIKE '%SQL%'
    ORDER BY physical_reads DESC

    8、查看正在使用临时段的session
    SELECT username, sid, serial#, sql_address, machine,
           program, tablespace, segtype, contents
    FROM v$session se, v$sort_usage su
    WHERE se.saddr=su.session_addr

    9、查看某一个操作系统进程的SQL
    SELECT a.username, a.machine, a.program, a.sid,
           a.serial#,  a.status,  c.piece,   c.sql_text
    FROM v$session a, v$process b, v$sqltext c
    WHERE b.spid=****
      AND b.addr=a.paddr
      AND a.sql_address=c.address(+)
    ORDER BY c.piece

    10、查看enqueue锁状态
    SELECT DECODE(request,0,'Holder: ','Waiter: ')||sid sess,
           id1, id2, lmode, request, type
    FROM V$LOCK
    WHERE (id1, id2, type) IN ( SELECT id1, id2, type FROM V$LOCK WHERE request>0)
    ORDER BY id1, request

    11、查看hotblock
    SELECT /*+ ordered */
        E.OWNER || '.' || E.SEGMENT_NAME SEGMENT_NAME,
        E.EXTENT_ID EXTENT#,
        X.DBABLK - E.BLOCK_ID + 1 BLOCK#,
        X.TCH,  L.CHILD#
    FROM SYS.V$LATCH_CHILDREN L, SYS.X$BH X, SYS.DBA_EXTENTS E
    WHERE L.NAME = 'cache buffers chains'
         AND L.SLEEPS > &SLEEP_COUNT
         AND X.HLADDR = L.ADDR
         AND E.FILE_ID = X.FILE#
         AND X.DBABLK BETWEEN E.BLOCK_ID AND E.BLOCK_ID + E.BLOCKS - 1
    ORDER BY X.TCH;

    12.内存与CPU利用率:
    SELECT aa.sid     AS "sid",
           aa.serial# AS "SERIAL#",
           aa.VALUE   AS "CPU",
           bb.VALUE   AS "内存-PGA",
           cc.VALUE   "I/O-Phy-read",
           aa.machine,aa.username,aa.program
      FROM (SELECT c.sid, c.serial#, a.NAME, b.VALUE,c.machine,c.program,c.username
              FROM v$statname a, v$sesstat b, v$session c
             WHERE NAME = 'CPU used by this session'
               AND a.statistic# = b.statistic#
               AND c.sid = b.sid) aa,
           (SELECT c.sid, c.serial#, a.NAME, b.VALUE
              FROM v$statname a, v$sesstat b, v$session c
             WHERE NAME = 'session pga memory'
               AND a.statistic# = b.statistic#
               AND c.sid = b.sid) bb,
           (SELECT c.sid, c.serial#, a.NAME, b.VALUE
              FROM v$statname a, v$sesstat b, v$session c
             WHERE NAME = 'physical reads'
               AND a.statistic# = b.statistic#
               AND c.sid = b.sid) cc
     WHERE aa.sid = bb.sid
        AND aa.sid = cc.sid
        AND aa.serial# = bb.serial#
        AND aa.serial# = cc.serial#
     ORDER BY 3 DESC, 4 DESC, 5 DESC

  • 相关阅读:
    python学习笔记(六)---文件操作与异常处理机制
    python学习笔记(五)---函数与类
    python学习笔记(四)---用户输入与while循环
    python学习笔记(三)---字典
    python学习笔记(二)---for循环与操作列表
    python学习笔记(一)---字符串与列表
    HTML
    80386汇编
    8086汇编语言
    网络设备配置--2、通过交换机划分vlan
  • 原文地址:https://www.cnblogs.com/jasonsfu/p/1152762.html
Copyright © 2011-2022 走看看