查看表空间、schema和表空间下所有表相关理解

数据字典:dba_users、dba_tables、dba_tablespaces、Dba_Segments

1.查看所有表空间
select * from Dba_Tablespaces;
呈现的信息表空间名称以及表空间的大小等。

2.查看表空间下所有的表
select TABLE_NAME,TABLESPACE_NAME from dba_tables where TABLESPACE_NAME=‘表空间名’;

3.查看用户默认表空间
select username,default_tablespace from dba_users order by username;
3.1查看当前用户默认表空间
select * from user_users;

4.查看所有schema
select username from sys.dba_users;

5.查看schema下所有的表
select table_name from dba_tables where owner=‘schema名称’;

6. 统计ORACLE schema下所有表大小包含clob,blob

schema下的空间主要有两类表的空间和clob的空间。

SELECT Owner
      ,SUM(Dx) dx
  FROM (SELECT Owner
              ,SUM(Bytes) / 1024 / 1024 / 1024 AS Dx
          FROM Dba_Segments
        /*WHERE (Owner, Segment_Name) IN (SELECT Owner
             ,Table_Name
         FROM Dba_Tables
        WHERE Owner = '&schema')*/
         GROUP BY Owner
        UNION ALL
        SELECT Lob.Owner
              ,SUM(Seg.Bytes) / 1024 / 1024 / 1024 AS Dx
          FROM Dba_Lobs     Lob
              ,Dba_Segments Seg
         WHERE Lob.Segment_Name = Seg.Segment_Name
        --AND Lob.Owner = '&schema'
         GROUP BY Lob.Owner
                 ,Lob.Table_Name)
 GROUP BY Owner
 ORDER BY 1 DESC;

7.schema的理解

在Oracle中,一个用户就是一个Schema,表都是建立在Schema中的,也可以理解为每个用户拥有不同的表。一个用户想访问另外一个用户,也就是另外一个schema的表的时候,
可以用 username.tablename的形式来访问,完全不需要分布式事务。分布式事务不是给你做这个用的。

Oracle数据库中不能新创建一个schema,要想创建一个schema,只能通过创建一个用户的方法解决。
Oracle在创建一个用户的同时会为这个用户创建一个与用户名同名的schem并作为该用户的缺省shcema。即schema的个数同user的个数相同,而且schema名字同user名字一一 对应并且相同。

深入理解user和schema的区别
不同的schema之间它们没有直接的关系,不同的shcema之间的表可以同名, 也可以互相引用(但必须有权限),在没有操作别的schema的操作根权下, 每个用户只能操作它自己的schema下的所有的表。不同的schema下的同名的表, 可以存入不同的数据(即schema用户自己的数据)。 好比一个房子,里面放满了家具,对这些家具有支配权的是房子的主人(user),而不是房子(schema)。
你可以也是一个房子的主人(user),拥有自己的房子(schema)。可以通过alter session的方式
进入别人的房子。 这个时候,你可以看到别人房子里的家具(desc)。 如果你没有特别指定的话,你所做的操作都是针对你当前所在房子中的东西。 至于你是否有权限使用(select)、搬动(update)或者拿走(delete)这些家具就看这个房子的
主人有没有给你这样的权限了,或者你是整个大厦(DB)的老大(DBA)。
如果你想调用其他schema的对象(有权限的前提下),但并没有建synonym, 同时又不想把其他schema名字放入代码中,就可以首先使用

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值