新手学习之查看ORACLE 数据库表空间和数据表的大小-阿里云开发者社区

开发者社区> 技术小胖子> 正文

新手学习之查看ORACLE 数据库表空间和数据表的大小

简介:
+关注继续查看

新手学习之 查看ORACLE 数据库 表空间和表的大小

一:查看表大小:

有两种含义的表大小。一种是分配给一个表的物理空间数量,而不管空间是否被使用。可以这样查询获得字节数

1.列如我们查看特定表大小占用表空间大小

select sum(bytes)/1024/1024 Mbytes  from user_segments where segment_type='TABLE' and segment_name='TEST01';

查看所有表大小

select segment_name, bytes from user_segments where segment_type = 'TABLE';

这里注意:where 条件查询的参数都要大写,否则就会查询不到符合的数据

2.查看表当前使用的空间

analyze table test01 compute statistics; 分析表

select num_rows * avg_row_len  from user_tables  where table_name = 'TEST01'; 查询表

二:查看表空间大小

命令一:先查看当前库下所有的user表空间

select * from user_tablespaces

命令二:查看当前库下所有表空间的free情况

select tablespace_name,sum(nvl(bytes,0)) from dba_free_space group by tablespace_name

函数nvl用法:

Nvl(a,b),就是用户判断a的值,如果查询的结果a的值为null,则返回b的值,如果a的值不为null,则返回a的值

命令学习三:查看当前库下的数据文件

select tablespace_name,sum(bytes) from dba_data_files group by tablespace_name;

这个值会查看到oracle 表空间的总大小

命令学习四:描述数据库的表空间

select tablespace_name,contents,extent_management from dba_tablespaces

根据上面四个常用的命令,来创建一个视图,查看表空间的利用情况

select

     a.a1  tab_name,   (表空间名称)

     c.c2  tab_type,(表类型)

     c.c3  table_management, (表管理)

     b.b2/1024/1024  tab_space_M,   (表空间大小,总)

a.a2/1024/1024  free_space_M,(剩余表空间大小)

     (b.b2-a.a2)/1024/1024  USED_SPACE_M,( 表使用大小)

     substr((b.b2-a.a2)/b.b2*100,1,5)   use_ratio(表的利用率)

     from

     (select tablespace_name a1,sum(nvl(bytes,0)) a2 from dba_free_space group by tablespace_name)  a,

     (select tablespace_name b1,sum(bytes) b2 from dba_data_files group by tablespace_name) b,

     (select tablespace_name c1,contents c2,extent_management c3 from dba_tablespaces)  c

     where a.a1=b.b1 and c.c1=b.b1;

我后面中文是起到一个标识的作用,在实际的oracle sql developer工具或者PL/SQL中,都尽量不要带有中文,很容易造成SQL语句不能识别

查询结果显示如图:


155623915.png

三:如果想要查看到表空间的datafile文件名,需要更改视图:

1.   查看当前库下所有表空间的free情况

select tablespace_name,sum(nvl(bytes,0)) from dba_free_space group by tablespace_name

2.   查看表空间所属的数据文件,测试环境下,一般都是一个表空间下只有一个数据文件,而在实际的环境中,一个表空间下有多个数据文件,而一个数据文件只能属于一个表空间

select file_name,tablespace_name from dba_data_files;

可以为一个表空间添加数据文件

alter tablespace myspace add datafile '/opt/oracle/oradata/test05/mytb02.dbf' size 20M autoextend on next 2m maxsize 100m;

  创建视图,查看file_nametablespace_name,如下

   select

       b.file_name       phy_file_name,     (物理文件名)

       b.tablespace_name   tablespace_name,(表空间名)

       b.bytes/1024/1024   tabspace_bytes,(表空间大小 MB

       (b.bytes-sum(nvl(a.bytes,0)))/1024/1024   USEED_SPACE,(使用表空间大小)

       substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes) * 100,1,5)  use_ratio (利用率)

       from dba_free_space a , dba_data_files b

       where a.file_id=b.file_id

       group by b.tablespace_name,b.file_name,b.bytes

       order by b.tablespace_name

查询结果如图所示:

155715325.png

四:如果想查看特定的表所在的表空间以及所在的物理文件上

select a.table_name,a.tablespace_name,b.file_name from user_tables a , dba_data_files b

where a.tablespace_name=b.tablespace_name and a.table_name='TEST01';

:查询和表空间的相关查询命令(知识点)

  1.  查询默认的数据表空间和临时表空间

 select property_name,property_value from database_properties where property_name in ('DEFAULT_PERMANENT_TABLESPACE',

  'DEFAULT_TEMP_TABLESPACE');  (针对USER的默认数据表空间和临时表空间)

  2.  更改数据库的默认表空间

   Alter database  default  tablespace tablespace_name;(数据表空间)

Alter database  temporary tablespace tablespace_name;(临时数据表空间)






      本文转自天真花语  51CTO博客,原文链接:http://blog.51cto.com/caibird/1285749,如需转载请自行联系原作者



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【转】Oracle 查看表空间使用率 SQL 脚本
文章转自:http://blog.csdn.net/tianlesoftware/article/details/7619732 1 /* Formatted on 2012/5/31 14:51:13 (QP5 v5.
656 0
SQL Server 游标运用:查看一个数据库所有表大小信息(Sizes of All Tables in a Database)
原文:SQL Server 游标运用:查看一个数据库所有表大小信息(Sizes of All Tables in a Database) 一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现代码(SQL Codes) 方法一:运用游...
973 0
在AIX中查看文件夹占用空间大小
在AIX中查看文件夹占用空间大小 用du -sg 可看出当前文件夹的大小(以G为单位);用du -sg filename 可看出当前文件夹下所有文件或文件夹的大小(以G为单位);du -sk ,du -sm 则分别以KB,MB为单位。
604 0
linux命令----查看磁盘空间
linux命令----查看磁盘空间今天用“web发布平台”发布测试的服务,两个节点中发现有一个节点没有发布成功,压测TPS始终上不去,排查后发现只有一个节点在打日志,另一个节点的服务进程都没有在运行,由此断定应该是没有发布成功,有点坑的是发布平台上的发布记录是SUCCESS的,打开发布日志后才看到有一个节点是发布失败的。
1097 0
ORA-13541: 系统移动窗口基线大小 (691200) 大于保留时间 (86400)
想通过 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS 来修改AWR snapshot 保留的时间,但是调整的时候遇到ORA-13541错误 过程如下: C:\Users\aaaa>sqlplus yang/yang as sysdba SQL*Plus: Release 11.
479 0
利用dblink实现oracle对oracle数据库的同步
利用dblink 做oracle到oracle的定时同步,以刚为卡中心做的一个同步为例 1、创建需要的dblink连接的数据库(若已经有,则不需要) 例: 查看 dblink : select * from dba_db_links; 创建 dblink : create database link ECARDRYXX connect to WPENG usin
1861 0
21119
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载