一、Oracle查看 表空间 的名称及其大小

查看 表空间的名称及其大小的SQL语句:

  1. select t1.tablespace_name,round(sum(bytes/(1024*1024)),0) tablespace_Size_MB
  2. from dba_tablespaces t1, dba_data_files t2
  3. where t1.tablespace_name = t2.tablespace_name
  4. group by t1.tablespace_name;

查询结果:

  1. TABLESPACE_NAME TABLESPACE_SIZE_MB
  2. ------------------------------ ------------------
  3. DLOTTEY 276480
  4. SYSAUX 48450
  5. UNDOTBS1 20000
  6. INDEXMT 10240
  7. USERS 1041
  8. SYSTEM 10240
  9. UNDOTBS2 20000
  10. MMLOTTERY 215040
  11.  
  12. 8 rows selected.

 

二、Oracle查看 表空间 的具体使用情况

方法1:(未排序)

  1. select a.tablespace_name "tablespace_name",
  2. totalspace "totalspaceM",
  3. freespace "freespaceM",
  4. round((1-freespace/totalspace)*100,2) "round%"
  5. from
  6. (select tablespace_name,round(sum(bytes)/1024/1024) totalspace from dba_data_files group by tablespace_name) a,
  7. (select tablespace_name,round(sum(bytes)/1024/1024) freespace from dba_free_space group by tablespace_name) b
  8. where a.tablespace_name=b.tablespace_name;

查询结果:

  1. tablespace_name totalspaceM freespaceM round%
  2. ------------------------ ----------- ---------- ----------
  3. DLOTTEY 276480 232415 15.94
  4. SYSAUX 48450 9683 80.01
  5. UNDOTBS1 20000 19741 1.3
  6. INDEXMT 10240 10024 2.11
  7. USERS 1041 138 86.74
  8. SYSTEM 10240 4344 57.58
  9. UNDOTBS2 20000 19601 2
  10. MMLOTTERY 215040 36279 83.13
  11.  
  12. 8 rows selected.

  

方法二:(查询结果排序)  

  1. select a.tablespace_name,
  2. a.bytes/1024/1024 "Sum MB",
  3. (a.bytes-b.bytes)/1024/1024 "used MB",
  4. b.bytes/1024/1024 "free MB",
  5. round(((a.bytes-b.bytes)/a.bytes)*100,2) "percent_used"
  6. from
  7. (select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name) a,
  8. (select tablespace_name,sum(bytes) bytes,max(bytes) largest from dba_free_space group by tablespace_name) b
  9. where a.tablespace_name=b.tablespace_name
  10. order by ((a.bytes-b.bytes)/a.bytes) desc;

  

查询结果:

  1. TABLESPACE_NAME Sum MB used MB free MB percent_used
  2. ---------------------- ---------- ---------- ---------- ------------
  3. USERS 1041.25 903.375 137.875 86.76
  4. MMLOTTERY 215040 178761 36279 83.13
  5. SYSAUX 48450 38767 9683 80.01
  6. SYSTEM 10240 5896.125 4343.875 57.58
  7. DLOTTEY 276480 44065.4375 232414.563 15.94
  8. INDEXMT 10240 215.625 10024.375 2.11
  9. UNDOTBS2 20000 399.3125 19600.6875 2
  10. UNDOTBS1 20000 257.5 19742.5 1.29
  11.  
  12. 8 rows selected.

  

三、Oracle查看 表空间物理文件 的名称及大小

set lines 150;
col tablespace_name for a20;
col file_name for a60;
 

1、查询所有的表空间

SQL语句:
  1. select tablespace_name, file_id, file_name,
  2. round(bytes/(1024*1024),0) total_space_MB
  3. from dba_data_files
  4. order by tablespace_name;

  

2、查询指定的表空间

SQL语句:
  1. select tablespace_name, file_id, file_name,
  2. round(bytes/(1024*1024),0) total_space_MB
  3. from dba_data_files
  4. where tablespace_name = 'MMLOTTERY'
  5. order by tablespace_name;

查询结果:

  1. TABLESPACE_NAME FILE_ID FILE_NAME TOTAL_SPACE_MB
  2. ------------------- ---------- ------------------------------------------- --------------
  3. MMLOTTERY 18 +DATA/ora11g/datafile/mmlottery01.dbf 30720
  4. MMLOTTERY 19 +DATA/ora11g/datafile/mmlottery02.dbf 30720
  5. MMLOTTERY 20 +DATA/ora11g/datafile/mmlottery03.dbf 30720
  6. MMLOTTERY 22 +DATA/ora11g/datafile/mmlottery04.dbf 30720
  7. MMLOTTERY 23 +DATA/ora11g/datafile/mmlottery05.dbf 30720
  8. MMLOTTERY 26 +DATA/ora11g/datafile/mmlottery06.dbf 30720
  9. MMLOTTERY 27 +DATA/ora11g/datafile/mmlottery07.dbf 30720
  10.  
  11. 7 rows selected.

  

四、Oracle查看 表 真实占用的空间

SQL语句:

  1. select t.owner,t.segment_name,t.segment_type,
  2. sum(t.bytes/1024/1024) used_MB
  3. from dba_segments t
  4. where owner = 'MMLOTTERY'
  5. group by owner,segment_name,segment_type
  6. order by used_MB desc;

查询结果:

  1. OWNER SEGMENT_NAME SEGMENT_TYPE USED_MB
  2. ------------------- -------------------------------- ------------------ ----------
  3. MMLOTTERY TB_ORIGINAL_ORDERDETAILS TABLE 1792
  4. MMLOTTERY TB_LOTTERY_SALEDETAIL TABLE 1472
  5. MMLOTTERY TB_LOTTERYSCHEMEINFO_ADD TABLE 1280
  6. MMLOTTERY TEST_007 TABLE 1152
  7. MMLOTTERY TB_ACCOUNT_OPERATE_DETAIL TABLE 808
  8. MMLOTTERY PK14 INDEX 377
  9. MMLOTTERY PK14_11 INDEX 312
  10. MMLOTTERY PK14_13 INDEX 200
  11. MMLOTTERY PK14_12 INDEX 160
  12. MMLOTTERY TB_BONUS_ORDERDETAILS TABLE 160
  13. MMLOTTERY TB_WINBONUS_DETAIL TABLE 144
  14.  
  15. 11 rows selected.

  

  

五、Oracle 增加表空间

语法:
    alter tablespace {表空间名字} add datafile '物理数据文件路径' SIZE 『初始大小M』 AUTOEXTEND ON NEXT 『自动扩展大小M』
 
例子:

  1. alter tablespace MMLOTTERY add datafile '+DATA/ora11g/datafile/mmlottery08.dbf' size 30720m autoextend on next 200m;

注意:如果添加表空间的文件名重复,那么会报错,如下:

  1. SQL> alter tablespace MMLOTTERY add datafile '+DATA/ora11g/datafile/mmlottery08.dbf' size 30720m autoextend on next 200m;
  2. alter tablespace MMLOTTERY add datafile '+DATA/ora11g/datafile/mmlottery08.dbf' size 30720m autoextend on next 200m
  3. *
  4. ERROR at line 1:
  5. ORA-01537: cannot add file '+DATA/ora11g/datafile/mmlottery08.dbf' - file already part of database
若 datafile 加错到表空间,则执行删除操作。
alter tablespace MMLOTTERY drop datafile '+DATA/ora11g/datafile/mmlottery08.dbf';
或者
alter database datafile '+DATA/ora11g/datafile/mmlottery08.dbf' offline drop;
 

 

六、Oracle 临时表空间的查看与增加

查看临时表空间
SQL语句:
select tablespace_name,file_id,file_name,round(bytes/1024/1024,0) temp_size_MB from dba_temp_files;
 
查询结果:
  1. TABLESPACE_NAME FILE_ID FILE_NAME TEMP_SIZE_MB
  2. ----------------- ---------- --------------------------------------------- ------------
  3. TEMP 1 +DATA/ora11g/tempfile/temp.262.917714589 20000
 
增加临时表空间文件
SQL语句:
alter tablespace TEMP add tempfile '+DATA/ora11g/tempfile/temp01.dbf' size 20000m autoextend on next 2000m;
 

七、查看表空间是否为自增

表空间是有数据文件组成的,所以看表空间是否自增即看数据文件,如下查自增的表空间: 

  1. select tablespace_name,file_name,autoextensible from dba_data_files where autoextensible='YES';

autoextensible: YES/NO 即表示是否自增。

示例:

  1. SQL> select tablespace_name,file_name,autoextensible from dba_data_files where TABLESPACE_NAME='USERS';
  2.  
  3. TABLESPACE_NAME FILE_NAME AUT
  4. -------------------- ------------------------------------------------------------ ---
  5. USERS +DATA/ora11g/datafile/users.264.917714693 YES

【实例】Oracle 表空间的查看与增加

步骤 1、查看表空间的具体使用情况

 SQL语句,如下:

  1. select a.tablespace_name,
  2. a.bytes/1024/1024 "Sum MB",
  3. (a.bytes-b.bytes)/1024/1024 "used MB",
  4. b.bytes/1024/1024 "free MB",
  5. round(((a.bytes-b.bytes)/a.bytes)*100,2) "percent_used"
  6. from
  7. (select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name) a,
  8. (select tablespace_name,sum(bytes) bytes,max(bytes) largest from dba_free_space group by tablespace_name) b
  9. where a.tablespace_name=b.tablespace_name
  10. order by ((a.bytes-b.bytes)/a.bytes) desc;

  

查询结果:

  1. TABLESPACE_NAME Sum MB used MB free MB percent_used
  2. ---------------------- ---------- ---------- ---------- ------------
  3. USERS 1041.25 903.375 137.875 86.76
  4. MMLOTTERY 215040 178761 36279 83.13
  5. SYSAUX 48450 38767 9683 80.01
  6. SYSTEM 10240 5896.125 4343.875 57.58
  7. DLOTTEY 276480 44065.4375 232414.563 15.94
  8. INDEXMT 10240 215.625 10024.375 2.11
  9. UNDOTBS2 20000 399.3125 19600.6875 2
  10. UNDOTBS1 20000 257.5 19742.5 1.29
  11.  
  12. 8 rows selected.

  

步骤2、查看指定表空间(MMLOTTERY)的物理文件名称及其大小

set lines 150;
col tablespace_name for a20;
col file_name for a60;
 
SQL语句:
  1. select tablespace_name, file_id, file_name,
  2. round(bytes/(1024*1024),0) total_space_MB
  3. from dba_data_files
  4. where tablespace_name = 'MMLOTTERY'
  5. order by tablespace_name;

查询结果:

  1. TABLESPACE_NAME FILE_ID FILE_NAME TOTAL_SPACE_MB
  2. ------------------- ---------- ------------------------------------------- --------------
  3. MMLOTTERY 18 +DATA/ora11g/datafile/mmlottery01.dbf 30720
  4. MMLOTTERY 19 +DATA/ora11g/datafile/mmlottery02.dbf 30720
  5. MMLOTTERY 20 +DATA/ora11g/datafile/mmlottery03.dbf 30720
  6. MMLOTTERY 22 +DATA/ora11g/datafile/mmlottery04.dbf 30720
  7. MMLOTTERY 23 +DATA/ora11g/datafile/mmlottery05.dbf 30720
  8. MMLOTTERY 26 +DATA/ora11g/datafile/mmlottery06.dbf 30720
  9. MMLOTTERY 27 +DATA/ora11g/datafile/mmlottery07.dbf 30720
  10.  
  11. 7 rows selected.

  

步骤3、增加指定表空间(MMLOTTERY)的大小

增加指定表空间的大小,SQL语句:

  1. SQL> alter tablespace MMLOTTERY add datafile '+DATA/ora11g/datafile/mmlottery.dbf' size 30720m;
  2.  
  3. Tablespace altered.

  

根据步骤2的命令,查询增加后的结果:

  1. TABLESPACE_NAME FILE_ID FILE_NAME TOTAL_SPACE_MB
  2. -------------------- ---------- ------------------------------------------------------------ --------------
  3. MMLOTTERY 18 +DATA/ora11g/datafile/mmlottery01.dbf 30720
  4. MMLOTTERY 19 +DATA/ora11g/datafile/mmlottery02.dbf 30720
  5. MMLOTTERY 20 +DATA/ora11g/datafile/mmlottery03.dbf 30720
  6. MMLOTTERY 22 +DATA/ora11g/datafile/mmlottery04.dbf 30720
  7. MMLOTTERY 23 +DATA/ora11g/datafile/mmlottery05.dbf 30720
  8. MMLOTTERY 26 +DATA/ora11g/datafile/mmlottery06.dbf 30720
  9. MMLOTTERY 27 +DATA/ora11g/datafile/mmlottery07.dbf 30720
  10. MMLOTTERY 28 +DATA/ora11g/datafile/mmlottery08.dbf 30720
  11.  
  12. 8 rows selected.

  

步骤4、查看增加表空间后的具体情况

SQL语句:

  1. select a.tablespace_name,
  2. a.bytes/1024/1024 "Sum MB",
  3. (a.bytes-b.bytes)/1024/1024 "used MB",
  4. b.bytes/1024/1024 "free MB",
  5. round(((a.bytes-b.bytes)/a.bytes)*100,2) "percent_used"
  6. from
  7. (select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name) a,
  8. (select tablespace_name,sum(bytes) bytes,max(bytes) largest from dba_free_space group by tablespace_name) b
  9. where a.tablespace_name=b.tablespace_name
  10. and a.tablespace_name='MMLOTTERY';

  

查询结果:

  1. TABLESPACE_NAME Sum MB used MB free MB percent_used
  2. -------------------- ---------- ---------- ---------- ------------
  3. MMLOTTERY 245760 179218 66542 72.92

  

【备注】

Oracle只查询一条记录的语句:
  1. select * from tablename where rownum = 1;

 

 
修改用户默认表空间
  1. alter user user_name default tablespace dev_tb;
  2. alter user user_name temporary tablespace dev_temp;
 
查看数据文件是否有数据:
只需查看数据文件中是否包含extent段。如果有extent(索引段,数据段)段,则说明数据文件中有数据。
使用dba_extents视图和dba_data_files视图进行连接查询。
  1. select t.file_name,t1.owner,t1.segment_name,t1.segment_type,t1.tablespace_name from dba_data_files t,dba_extents t1 where t.file_id=t1.file_id and file_name='你要查询的数据文件路径';

  

 

【总结】Oracle数据库 查看表空间和增加表空间的更多相关文章

  1. 使用oracle数据库,多用户同时对一个表进行增加,删除,修改,查看等操作,会不会有影响?

    使用oracle数据库,多用户同时对一个表进行增加,删除,修改,查看等操作,会不会有影响? 1.问题:各操作间或者性能上会不会有影响? 如果有该如何解决? 多用户操作的影响主要是回锁定记录,oracl ...

  2. Oracle数据库查看表空间sql语句

    转: Oracle数据库查看表空间sql语句 2018-09-03 15:49:51 兰海泽 阅读数 6212   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出 ...

  3. 基础概念:Oracle数据库、实例、用户、表空间、表之间的关系

    基础概念:Oracle数据库.实例.用户.表空间.表之间的关系 数据库: Oracle数据库是数据的物理存储.这就包括(数据文件ORA或者DBF.控制文件.联机日志.参数文件).其实Oracle数据库 ...

  4. oracle数据库_实例_用户_表空间之间的关系

    基础概念:Oracle数据库.实例.用户.表空间.表之间的关系 数据库:Oracle数据库是数据的物理存储.这就包括(数据文件ORA或者DBF.控制文件.联机日志.参数文件).其实Oracle数据库的 ...

  5. Oracle数据库访问其他用户下的表,不加表所属的用户名的实现方法

    一. 问题: 如何实现在Oracle数据库中访问其他用户的表时不需加表所属的用户名 二. 举例: Oracle里面的用户A,要访问用户B的表需要带用户B的前缀,如访问用户B的 TEST表,需要这样访问 ...

  6. Oracle数据库、实例、用户、表空间、表之间的关系

    完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例. 1) 数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等): 2) Oracle数据库实例则是一组Ora ...

  7. oracle数据库_实例_用户_表空间之间的关系(转)

    数据库:Oracle数据库是数据的物理存储.这就包括(数据文件ORA或者DBF.控制文件.联机日志.参数文件).其实Oracle数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库.可 ...

  8. Oracle 数据库、实例、用户、表空间、表之间的关系

    数据库: Oracle数据库是数据的物理存储.这就包括(数据文件ORA或者DBF.控制文件.联机日志.参数文件).其实oracle数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库. ...

  9. DB2查看表空间和增加表空间容量

    Db2 connect to xxx Db2 “LIST TABLESPACES SHOW DETAIL” Tablespace ID = 7 Name = TSASNAA Type = Databa ...

随机推荐

  1. oracle 11g 导入表时 提示 ***值太大错误

    导入数据库时,总是提示**值太大,实际值是**的错误. 具体忘了错误代码是什么了 ——! 经查询,这个是由于字符集设置的不是gbk的,导致导入时遇到中文字符出现的问题, 解决方法: 如果可以的话就把数 ...

  2. C++中的输入输出

    update&fixed: 经过实测,io解绑在各大oj以及本地评测软件上都劣于scanf 所以在大数据的情况下还是推荐尽量使用scanf! ! ! ! 众所周知,C++自带了各种输入方式 比 ...

  3. 分享一个后端专用login模板

    给大家啊分享一个后端专用login模板 Java工程师再也不用这样啦---> html源码 <html lang="en"> <head> <m ...

  4. Mybatis参数传递及返回类型

    mybatis参数传递: 单个参数:不做特殊处理        #{参数名}:取出参数值    多个参数:做特殊处理        多个参数会被封装成一个map            key:para ...

  5. 汽车芯片如何高效符合ISO 26262功能安全标准

      汽车芯片和集成电路(IC)是高级驾驶员辅助系统(advanced driver assistance systems-ADAS)和联网自动驾驶汽车(connected autonomous veh ...

  6. Zookeeper源码解读

    1.1. 客户端源码 1.1.1. 总体流程 启动客户端 zkCli.sh文件里面的配置 实际运行 public static void main(String args[]) throws Keep ...

  7. 通俗理解线性回归(Linear Regression)

    线性回归, 最简单的机器学习算法, 当你看完这篇文章, 你就会发现, 线性回归是多么的简单. 首先, 什么是线性回归. 简单的说, 就是在坐标系中有很多点, 线性回归的目的就是找到一条线使得这些点都在 ...

  8. 第3课 - 启航Lua之路

    第3课 - 启航Lua之路 1. Lua中的变量 (1)变量:全局变量和局部变量 — Lua中支持全局变量和局部变量的概念 全局变量:直接定义变量名,并复制 a = 1;   -- 用 ; 结束当前语 ...

  9. 万字详解 TDengine 2.0 数据复制模块设计

    ​导读:TDengine分布式集群功能已经开源,集群功能中最重要的一个模块是数据复制(replication),现将该模块的设计分享出来,供大家参考.欢迎大家对着设计文档和GitHub上的源代码一起看 ...

  10. Linux实战(8):查看文件大小

    du -sh *