• oracle查看表空间的大小及使用情况sql语句


    --------------------------tablespace------------------------------------------------

    1、//查看表空间的名称及大小 
    SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size 
    FROM dba_tablespaces t, dba_data_files d 
    WHERE t.tablespace_name = d.tablespace_name 
    GROUP BY t.tablespace_name; 
    
    2、//查看表空间物理文件路径的名称及大小 
    SELECT tablespace_name, 
    file_id, 
    file_name, 
    round(bytes / (1024 * 1024), 0) total_space 
    FROM dba_data_files 
    ORDER BY tablespace_name; 
    
    3、//查看回滚段名称及大小 
    SELECT segment_name, 
    tablespace_name, 
    r.status, 
    (initial_extent / 1024) initialextent, 
    (next_extent / 1024) nextextent, 
    max_extents, 
    v.curext curextent 
    FROM dba_rollback_segs r, v$rollstat v 
    WHERE r.segment_id = v.usn(+) 
    ORDER BY segment_name; 
    
    4、//查看控制文件 
    SELECT NAME FROM v$controlfile; 
    5、//查看日志文件 
    SELECT MEMBER FROM v$logfile; 
    
    6、//查看表空间的使用情况 
    SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_name 
    FROM dba_free_space 
    GROUP BY tablespace_name; 
    SELECT a.tablespace_name, 
    a.bytes total, 
    b.bytes used, 
    c.bytes free, 
    (b.bytes * 100) / a.bytes "% USED ", 
    (c.bytes * 100) / a.bytes "% FREE " 
    FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c 
    WHERE a.tablespace_name = b.tablespace_name 
    AND a.tablespace_name = c.tablespace_name; 
    
    7、//查看表空间总数求和,已经使用的表空间
    select total.tablespace_name,round(total.MB,2) as Total_MB,
    round(total.MB-free.MB, 2) as Used_MB
    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
    
    8、//查看数据库库对象 
    SELECT owner, object_type, status, COUNT(*) count# 
    FROM all_objects 
    GROUP BY owner, object_type, status; 
    9、//查看数据库的版本  
    SELECT version 
    FROM product_component_version 
    WHERE substr(product, 1, 6) = 'Oracle'; 
    10、//查看数据库的创建日期和归档方式 
    SELECT created, log_mode, log_mode FROM v$database;
    
    11、//查表空间使用率情况(含临时表空间)
    SELECT d.tablespace_name "Name", d.status "Status", 
           TO_CHAR (NVL (a.BYTES / 1024 / 1024, 0), '99,999,990.90') "Size (M)",
              TO_CHAR (NVL (a.BYTES - NVL (f.BYTES, 0), 0) / 1024 / 1024,
                       '99999999.99'
                      ) USE,
           TO_CHAR (NVL ((a.BYTES - NVL (f.BYTES, 0)) / a.BYTES * 100, 0),
                    '990.00'
                   ) "Used %"
      FROM SYS.dba_tablespaces d,
           (SELECT   tablespace_name, SUM (BYTES) BYTES
                FROM dba_data_files
            GROUP BY tablespace_name) a,
           (SELECT   tablespace_name, SUM (BYTES) BYTES
                FROM dba_free_space
            GROUP BY tablespace_name) f
     WHERE d.tablespace_name = a.tablespace_name(+)
       AND d.tablespace_name = f.tablespace_name(+)
       AND NOT (d.extent_management LIKE 'LOCAL' AND d.CONTENTS LIKE 'TEMPORARY')
    UNION ALL
    SELECT d.tablespace_name "Name", d.status "Status", 
           TO_CHAR (NVL (a.BYTES / 1024 / 1024, 0), '99,999,990.90') "Size (M)",
              TO_CHAR (NVL (t.BYTES, 0) / 1024 / 1024, '99999999.99') USE,
           TO_CHAR (NVL (t.BYTES / a.BYTES * 100, 0), '990.00') "Used %"
      FROM SYS.dba_tablespaces d,
           (SELECT   tablespace_name, SUM (BYTES) BYTES
                FROM dba_temp_files
            GROUP BY tablespace_name) a,
           (SELECT   tablespace_name, SUM (bytes_cached) BYTES
                FROM v$temp_extent_pool
            GROUP BY tablespace_name) t
     WHERE d.tablespace_name = a.tablespace_name(+)
       AND d.tablespace_name = t.tablespace_name(+)
       AND d.extent_management LIKE 'LOCAL'
       AND d.CONTENTS LIKE 'TEMPORARY';

      

      

    --------------------------tablespace使用大小计算-------------------------------

    1G=1024MB 
    1M=1024KB 
    1K=1024Bytes 
    1M=11048576Bytes 
    1G=1024*11048576Bytes=11313741824Bytes 
    SELECT a.tablespace_name "表空间名", 
    total "表空间大小", 
    free "表空间剩余大小", 
    (total - free) "表空间使用大小", 
    total / (1024 * 1024 * 1024) "表空间大小(G)", 
    free / (1024 * 1024 * 1024) "表空间剩余大小(G)", 
    (total - free) / (1024 * 1024 * 1024) "表空间使用大小(G)", 
    round((total - free) / total, 4) * 100 "使用率 %" 
    FROM (SELECT tablespace_name, SUM(bytes) free 
    FROM dba_free_space 
    GROUP BY tablespace_name) a, 
    (SELECT tablespace_name, SUM(bytes) total 
    FROM dba_data_files 
    GROUP BY tablespace_name) b 
    WHERE a.tablespace_name = b.tablespace_name
    

      

     -----------------------------扩增表空间大小---------------------------------------------------------

    //查询用户对应的表空间,我们可以看到针对不同的数据库用户ORACLE
    select username, default_tablespace, temporary_tablespace
    from dba_users;
    
    //查询用户的对应的数据文件,以及数据文件大小
    select tablespace_name, file_id, file_name,
    round(bytes/(1024*1024),0) total_space
    from dba_data_files
    order by tablespace_name;
    
    //扩增表空间大小
    SQL> ALTER DATABASE DATAFILE '/data/URSP_SLSADMIN.dbf' RESIZE 8000M ;
    

      

  • 相关阅读:
    merge into update
    buffer overflow
    在表中循环插入日期
    判断表是否存在 存储
    listagg( ) within group ( order by ) 与 wm_concat
    Oracle导入SQL脚本执行 scott 用户下的表删除了
    数据导入时注意点,修改登录密码不区分大小写
    分页
    创建触发器在表中播入数据时ID自动增长
    insert 另外一种用法
  • 原文地址:https://www.cnblogs.com/Alexr/p/9362072.html
Copyright © 2020-2023  润新知