常用表空间&数据文件监控语句

来源:互联网 发布:windows查看cpu温度 编辑:程序博客网 时间:2024/05/29 06:35

一、表空间及数据文件

  1. SELECT TABLESPACE_NAME,
  2.        FILE_NAME,
  3.        BYTES / 1024 / 1024 "Total Size(MB)",
  4.        AUTOEXTENSIBLE "Auto"
  5.   FROM DBA_DATA_FILES
  6.  ORDER BY TABLESPACE_NAME, FILE_ID;

二、表空间状态及其大小使用情况

  1. SELECT  d.tablespace_name "Name", d.status "Status", d.contents "Type",
  2.         TO_CHAR(NVL(a.bytes / 1024 / 10240),'99G999G990D900') "Size (MB)",
  3.         TO_CHAR(NVL(a.bytes - NVL(f.bytes, 0),0)/1024/1024'99G999G990D900') "Used (MB)",
  4.         TO_CHAR(NVL((a.bytes - NVL(f.bytes, 0)) / a.bytes * 1000), '990D00') "Used%"
  5. FROM sys.dba_tablespaces d,
  6.     (select tablespace_name, sum(bytes) bytes
  7.      from dba_data_files group by tablespace_name) a,
  8.     (select tablespace_name, sum(bytes) bytes
  9.      from dba_free_space group by tablespace_name) f
  10. WHERE d.tablespace_name = a.tablespace_name(+)
  11.       AND d.tablespace_name = f.tablespace_name(+);

三、数据文件状态及其大小使用情况

  1. SELECT A.TABLESPACE_NAME "TableSpace Name",
  2.        A.FILE_NAME "File Name",
  3.        A.STATUS "Status",
  4.        A.AUTOEXTENSIBLE "Auto",
  5.        TO_CHAR(NVL(A.BYTES / 1024 / 10240), '99G999G990D900') "Size (MB)",
  6.        TO_CHAR(NVL(A.BYTES - NVL(F.BYTES, 0), 0) / 1024 / 1024,
  7.                '99G999G990D900') "Used (MB)",
  8.        TO_CHAR(NVL((A.BYTES - NVL(F.BYTES, 0)) / A.BYTES * 1000),
  9.                '990D00') "Used%"
  10.   FROM DBA_DATA_FILES A,
  11.        (SELECT FILE_ID, SUM(BYTES) BYTES
  12.           FROM DBA_FREE_SPACE
  13.          GROUP BY FILE_ID) F
  14.  WHERE A.FILE_ID = F.FILE_ID(+)
  15.  ORDER BY A.TABLESPACE_NAME, A.FILE_ID;

四、不使用临时文件的临时表空间

  1. SELECT TABLESPACE_NAME, CONTENTS
  2.   FROM DBA_TABLESPACES
  3.  WHERE CONTENTS = 'TEMPORARY'
  4.    AND TABLESPACE_NAME NOT IN (SELECT TABLESPACE_NAME FROM DBA_TEMP_FILES);

五、无效的数据文件(offline)

  1. SELECT F.TABLESPACE_NAME, F.FILE_NAME, D.STATUS
  2.   FROM DBA_DATA_FILES F, V$DATAFILE D
  3.  WHERE D.STATUS = 'OFFLINE'
  4.    AND F.FILE_ID = FILE#(+);

六、处于恢复模式的文件

  1. SELECT F.TABLESPACE_NAME, F.FILE_NAME
  2.   FROM DBA_DATA_FILES F, V$RECOVER_FILE R
  3.  WHERE F.FILE_ID = R.FILE#;

七、表空间上的I/O分布

  1. SELECT T.NAME      TS_NAME,
  2.        F.NAME      FILE_NAME,
  3.        S.PHYRDS    PHY_READS,
  4.        S.PHYBLKRD  PHY_BLOCKREADS,
  5.        S.PHYWRTS   PHY_WRITES,
  6.        S.PHYBLKWRT PHY_BLOCKWRITES
  7.   FROM GV$TABLESPACE T, GV$DATAFILE F, GV$FILESTAT S
  8.  WHERE T.TS# = F.TS#
  9.    AND F.FILE# = S.FILE#
  10.  ORDER BY S.PHYRDS DESC, S.PHYWRTS DESC;

八、数据文件上的I/O分布

  1. SELECT TS.NAME "Table Space",
  2.        D.NAME "File Name",
  3.        FS.PHYRDS "Phys Rds",
  4.        DECODE(FSTOT.SUM_PH_RDS,
  5.               00,
  6.               ROUND(100 * FS.PHYRDS / FSTOT.SUM_PH_RDS, 2)) "% Phys Rds",
  7.        FS.PHYWRTS "Phys Wrts",
  8.        DECODE(FSTOT.SUM_PH_WRTS,
  9.               00,
  10.               ROUND(100 * FS.PHYWRTS / FSTOT.SUM_PH_WRTS, 2)) "% Phys Wrts"
  11.   FROM V$FILESTAT FS,
  12.        V$DATAFILE D,
  13.        V$TABLESPACE TS,
  14.        (SELECT SUM(PHYRDS) SUM_PH_RDS,
  15.                SUM(PHYWRTS) SUM_PH_WRTS,
  16.                SUM(PHYBLKRD) SUM_BL_RDS,
  17.                SUM(PHYBLKWRT) SUM_BL_WRTS
  18.           FROM V$FILESTAT) FSTOT
  19.  WHERE D.FILE# = FS.FILE#
  20.    AND D.TS# = TS.TS#;

九、为表空间添加数据文件

  1. ALTER TABLESPACE BASE_DATA
  2.   ADD DATAFILE '+DATA' SIZE 32767AUTOEXTEND OFF;

十、表空间使用情况(所有)

  1. SELECT NAME,
  2.        MAX,
  3.        TOTAL,
  4.        USEDSPACE,
  5.        USEDPCT,
  6.        MAXUSEDPCT,
  7.        FREESPACE,
  8.        MAXFREESPACE
  9.   FROM (SELECT /*+ALL_ROWS */
  10.          D.TABLESPACE_NAME "NAME",
  11.          ROUND(NVL(A.MAXBYTES / 1024 / 10240)) "MAX",
  12.          ROUND(NVL(A.BYTES / 1024 / 10240)) "TOTAL",
  13.          ROUND(DECODE(D.CONTENTS,
  14.                       'UNDO',
  15.                       NVL(U.BYTES, 0) / 1024 / 1024,
  16.                       NVL(A.BYTES - NVL(F.BYTES, 0), 0) / 1024 / 1024),
  17.                1) "USEDSPACE",
  18.          ROUND(DECODE(D.CONTENTS,                      'UNDO',
  19.                       NVL(U.BYTES / A.BYTES * 1000),
  20.                       NVL((A.BYTES - NVL(F.BYTES, 0)) / A.BYTES * 1000)),
  21.                1) "USEDPCT",
  22.          ROUND(DECODE(D.CONTENTS,
  23.                       'UNDO',
  24.                       NVL(U.BYTES / A.MAXBYTES * 1000),
  25.                       NVL((A.BYTES - NVL(F.BYTES, 0)) / A.MAXBYTES * 1000)),
  26.                1) "MAXUSEDPCT",
  27.          ROUND(DECODE(D.CONTENTS,
  28.                       'UNDO',
  29.                       NVL(A.BYTES - NVL(U.BYTES, 0), 0) / 1024 / 1024,
  30.                       NVL(F.BYTES, 0) / 1024 / 1024),
  31.                1) "FREESPACE",
  32.          ROUND(DECODE(D.CONTENTS,
  33.                       'UNDO',
  34.                       NVL(A.MAXBYTES - NVL(U.BYTES, 0), 0) / 1024 / 1024,
  35.                       NVL(A.MAXBYTES - (A.BYTES - NVL(F.BYTES, 0)), 0) / 1024 / 1024),
  36.                1) "MAXFREESPACE"
  37.           FROM SYS.DBA_TABLESPACES D,
  38.                (SELECT TABLESPACE_NAME,
  39.                        SUM(BYTES) BYTES,
  40.                        SUM(DECODE(AUTOEXTENSIBLE, 'YES', MAXBYTES, BYTES)) MAXBYTES,
  41.                        COUNT(FILE_ID) COUNT
  42.                   FROM DBA_DATA_FILES
  43.                  GROUP BY TABLESPACE_NAME) A,
  44.                (SELECT TABLESPACE_NAME, SUM(BYTES) BYTES
  45.                   FROM DBA_FREE_SPACE
  46.                  GROUP BY TABLESPACE_NAME) F,
  47.                (SELECT TABLESPACE_NAME, SUM(BYTES) BYTES
  48.                   FROM (SELECT TABLESPACE_NAME, SUM(BYTES) BYTES, STATUS
  49.                           FROM DBA_UNDO_EXTENTS
  50.                          WHERE STATUS = 'ACTIVE'
  51.                          GROUP BY TABLESPACE_NAME, STATUS
  52.                         UNION ALL
  53.                         SELECT TABLESPACE_NAME, SUM(BYTES) BYTES, STATUS
  54.                           FROM DBA_UNDO_EXTENTS
  55.                          WHERE STATUS = 'UNEXPIRED'
  56.                          GROUP BY TABLESPACE_NAME, STATUS)
  57.                  GROUP BY TABLESPACE_NAME) U
  58.          WHERE D.TABLESPACE_NAME = A.TABLESPACE_NAME(+)
  59.            AND D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)
  60.            AND D.TABLESPACE_NAME = U.TABLESPACE_NAME(+)
  61.            AND NOT
  62.                 (D.EXTENT_MANAGEMENT = 'LOCAL' AND D.CONTENTS = 'TEMPORARY')
  63.         -- AND D.TABLESPACE_NAME LIKE ?
  64.         UNION ALL
  65.         SELECT D.TABLESPACE_NAME,
  66.                NVL(A.MAXBYTES / 1024 / 10240),
  67.                NVL(A.BYTES / 1024 / 10240),
  68.                NVL(T.BYTES, 0) / 1024 / 1024,
  69.                ROUND(NVL(T.BYTES / A.BYTES * 1000), 1),
  70.                ROUND(NVL(T.BYTES / A.MAXBYTES * 1000), 1),
  71.                (NVL(A.BYTES, 0) / 1024 / 1024 -
  72.                NVL(T.BYTES, 0) / 1024 / 1024),
  73.                (NVL(A.MAXBYTES, 0) / 1024 / 1024 -
  74.                NVL(T.BYTES, 0) / 1024 / 1024)
  75.           FROM SYS.DBA_TABLESPACES D,
  76.                (SELECT TABLESPACE_NAME,
  77.                        SUM(BYTES) BYTES,
  78.                        SUM(DECODE(AUTOEXTENSIBLE, 'YES', MAXBYTES, BYTES)) MAXBYTES,
  79.                        COUNT(FILE_ID) COUNT
  80.                   FROM DBA_TEMP_FILES
  81.                  GROUP BY TABLESPACE_NAME) A,
  82.                (SELECT SS.TABLESPACE_NAME,
  83.                        SUM((SS.USED_BLOCKS * TS.BLOCKSIZE)) BYTES
  84.                   FROM GV$SORT_SEGMENT SS, SYS.TS$ TS
  85.                  WHERE SS.TABLESPACE_NAME = TS.NAME
  86.                  GROUP BY SS.TABLESPACE_NAME) T
  87.          WHERE D.TABLESPACE_NAME = A.TABLESPACE_NAME(+)
  88.            AND D.TABLESPACE_NAME = T.TABLESPACE_NAME(+)
  89.            AND D.EXTENT_MANAGEMENT = 'LOCAL'
  90.            AND D.CONTENTS = 'TEMPORARY'
  91.         -- AND D.TABLESPACE_NAME LIKE ?
  92.          ORDER BY 4 DESC) A;

十一、UNDO使用情况

  1. SELECT (SUM(BLOCKS) * 8) / 1024, STATUS
  2.   FROM DBA_UNDO_EXTENTS
  3.  GROUP BY STATUS;
0 0
原创粉丝点击