zoukankan      html  css  js  c++  java
  • Oracle查看表空间使用率SQL脚本

      数据库使用了一段时间有时候突然会爆出表没有足够的空间,一般来说是用户配额空间满了,或者是表空间、磁盘空间满了。大部分情况还是表空间满了。

      如果你经常看数据库的告警日志(日志位置$find /u01 -iname "alert*.log")和OEM上的信息很容易发现警告或者错误信息。但是我们大部分项目没有这样的条件,只能在pl/sql中看看。

    查询表空间‘空间’使用情况sql语句:

    SELECT F.TABLESPACE_NAME,

    TO_CHAR ((T.TOTAL_SPACE - F.FREE_SPACE),'999,999') "USED (MB)",

    TO_CHAR (F.FREE_SPACE, '999,999') "FREE (MB)",

    TO_CHAR (T.TOTAL_SPACE, '999,999') "TOTAL (MB)",

    TO_CHAR(T.MAX_SPACE,'999,999') "MAXSIZE(MB)",

    TO_CHAR ((ROUND ((F.FREE_SPACE/T.TOTAL_SPACE)*100)),'999')||' %' PER_FREE,

    CASE T.MAX_SPACE

      WHEN 0 THEN 'autoextensible=no'

        ELSE 'autoextensible=yes'

          END AS AUTOEXTEN 

    FROM (

    SELECT TABLESPACE_NAME,

    ROUND (SUM (BLOCKS*(SELECT VALUE/1024

    FROM V$PARAMETER

    WHERE NAME = 'db_block_size')/1024)

    ) FREE_SPACE

    FROM DBA_FREE_SPACE

    GROUP BY TABLESPACE_NAME

    ) F,

    (

    SELECT TABLESPACE_NAME,

    ROUND (SUM (BYTES/1048576)) TOTAL_SPACE,

    ROUND (SUM(MAXBYTES/1024/1024)) MAX_SPACE

    FROM DBA_DATA_FILES

    GROUP BY TABLESPACE_NAME

    ) T

    WHERE F.TABLESPACE_NAME = T.TABLESPACE_NAME;

    说明:TOTAL 表空间对应的数据文件占用磁盘空间

          MAXSIZE 数据文件可以增长的最大值

          USED  数据库实际使用的块

          FREE   空闲块

        TOTAL = USED + FREE oracle数据库中数据块和空闲块都占用磁盘空间的。

  • 相关阅读:
    Finder那点事
    mysql基础综述(四)
    【算法编程】过河问题
    CodeForces 7D Palindrome Degree 字符串hash
    语音信号短时域分析之预处理(三)
    sqlite学习笔记7:C语言中使用sqlite之打开数据库
    cpu真实占用率检測工具
    Mediator Design Pattern 中介者模式
    POJ-3984-迷宫问题-BFS(广搜)-手写队列
    HDU 4858 项目管理
  • 原文地址:https://www.cnblogs.com/AlbertCQY/p/2989774.html
Copyright © 2011-2022 走看看