• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >oracle > ORACLE 如何查看表空间使用率

ORACLE 如何查看表空间使用率

作者:coder_doctor 字体:[增加 减小] 来源:互联网 时间:2017-09-17

coder_doctor通过本文主要向大家介绍了oracle,表空间等相关知识,希望本文的分享对您有所帮助
 select tablespace_name,table_name from user_talbes where table_name='employ';

–2、获取用户的默认表空间

 select   username,   DEFAULT_TABLESPACE     from   dba_users where username='scott';

–3、查看表空间所有的文件

select * from dba_data_files where tablespace_name='USERS';
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 1

–查询表空间的free space

select tablespace_name, count(*) AS extends,round(sum(bytes) / 1024 / 1024, 2) AS MB,sum(blocks) AS blocks from dba_free_space group BY tablespace_name;

–查询表空间的总容量

select tablespace_name, sum(bytes) / 1024 / 1024 as MB from dba_data_files group by tablespace_name;

–查询表空间使用率

SELECT total.tablespace_name,
       Round(total.MB, 2)           AS Total_MB,
       Round(total.MB - free.MB, 2) AS Used_MB,
       Round(( 1 - free.MB / total.MB ) * 100, 2)
       || '%'                       AS Used_Pct
FROM   (SELECT tablespace_name,
               Sum(bytes) / 1024 / 1024 AS MB
        FROM   dba_free_space
        GROUP  BY tablespace_name) free,
       (SELECT tablespace_name,
               Sum(bytes) / 1024 / 1024 AS MB
        FROM   dba_data_files
        GROUP  BY tablespace_name) total
WHERE  free.tablespace_name = total.tablespace_name;

select tablespace_name,
       max_gb,
       used_gb,
       round(100 * used_gb / max_gb) pct_used
  from (select a.tablespace_name tablespace_name,
               round((a.bytes_alloc - nvl(b.bytes_free, 0)) / power(2, 30),
                     2) used_gb,
               round(a.maxbytes / power(2, 30), 2) max_gb
          from (select f.tablespace_name,
                       sum(f.bytes) bytes_alloc,
                       sum(decode(f.autoextensible,
                                  'YES',
                                  f.maxbytes,
                                  'NO',
                                  f.bytes)) maxbytes
                  from dba_data_files f
                 group by tablespace_name) a,
               (select f.tablespace_name, sum(f.bytes) bytes_free
                  from dba_free_space f
                 group by tablespace_name) b
         where a.tablespace_name = b.tablespace_name(+)
        union allselect h.tablespace_name tablespace_name,
               round(sum(nvl(p.bytes_used, 0)) / power(2, 30), 2) used_gb,
               round(sum(decode(f.autoextensible,
                                'YES',
                                f.maxbytes,
                                'NO',
                                f.bytes)) / power(2, 30),
                     2) max_gb
          from v$temp_space_header h, v$temp_extent_pool p, dba_temp_files f
         where p.file_id(+) = h.file_idand p.tablespace_name(+) = h.tablespace_name
           and f.file_id = h.file_idand f.tablespace_name = h.tablespace_name
         group by h.tablespace_name)
order by 4;
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Oracle连接远程数据库的四种方法
  • Oracle解析复杂json的方法实例详解
  • Oracle 11g简体中文版安装图文教程
  • Oracle存储过程、包、方法使用总结(推荐)
  • Oracle批量查询、删除、更新使用BULK COLLECT提高效率
  • Oracle 11g 安装配置方法图文教程
  • Oracle 11g安装错误提示未找到wfmlrsvcapp.ear的解决方法
  • oracle创建表空间、授权、创建用户、导入dmp文件
  • Oracle触发器实例代码
  • Oracle数据库的字段约束创建和维护示例

相关文章

  • 2017-05-11oracle生成动态前缀且自增号码的函数分享
  • 2017-05-11Oracle 中生成流水号的方法
  • 2017-10-09Oracle SQLPlus命令
  • 2017-05-11Oracle 使用TOAD实现导入导出Excel数据
  • 2017-05-11ORACLE 查询被锁住的对象,并结束其会话的方法
  • 2017-05-11Oracle开发之报表函数
  • 2017-05-11oracle 发送邮件 实现方法
  • 2017-05-11oracle清空所有表数据
  • 2017-05-11Oracle数据库的空间管理技巧
  • 2017-05-11oracle数据库常用的99条查询语句

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • Linux中Oracle的sqlplus下退格和Del键无效的问题解决
    • Oracle用户密码过期和用户被锁的解决方法
    • 如何在Oracle中导入dmp文件
    • 浅析如何在tnsnames.ora中配置监听
    • 探索ORACLE之ASM概念(完整版)
    • Mybatis出现ORA-00911: invalid character的解决办法
    • Oracle实现行转换成列的方法
    • oracle存储过程创建表分区实例
    • 深入Oracle字符集的查看与修改详解
    • oracle创建删除用户示例分享(oracle删除用户命令及授权)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有