Oracle表空间的一些介绍

今天在跑过程是发现老师提示表空间不足,但是查找了好一会才知道原因

下面说一下:

1、表空间分配

这个查询是查到的总共该用户下表空间的试用情况(注意并非这一个用户拥有这个表空间)

SELECT tbs 表空间名,

       sum(totalG) 总共大小G,

       sum(usedG) 已使用空间G,

       sum(remainedG) 剩余空间G,

       sum(usedG) / sum(totalG) * 100已使用百分比,

       sum(remainedG) / sum(totalG) * 100剩余百分比

  FROM (SELECT b.file_id ID,

               b.tablespace_nametbs,

               b.file_name name,

               b.bytes / 1024 / 1024/1024 totalG,

               (b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024/1024 usedG,

               sum(nvl(a.bytes, 0) / 1024 / 1024/1024) remainedG,

               sum(nvl(a.bytes, 0) / (b.bytes) * 100),

               (100 - (sum(nvl(a.bytes, 0)) / (b.bytes) * 100))

          FROM user_free_space a, dba_data_files b

         WHERE a.file_id = b.file_id

         GROUPBY b.tablespace_name, b.file_name,b.file_id, b.bytes

         ORDERBY b.tablespace_name)

 GROUPBY tbs;

 

 

2、该用户下可用表空间

这个查询才是该用户下表空间的使用情况,建表插入数据,都是在这个表空间里

selecta.tablespace_name 表空间名,

       a.max_bytes / 1024 / 1024 / 1024最大空间,

       (a.max_bytes - bytes) / 1024 / 1024 / 1024剩余空间

  from user_ts_quotas a;

注意:如果发现 max_bytes 0 对该用户下该表空间没有限制就参考上边的该表空间允许的最大限制

 

3、表空间在其他用户下的情况

 这个查询的事除了2中的用户,还有哪些用户试用这些表空间和使用情况如下:


select ts.name 表空间, u.name 用户, spc.blocks * ts.blocksize/1024/1024/1024已使用大小,

       decode(spc.maxblocks, -1, -1, spc.maxblocks *ts.blocksize)/1024/1024/1024最大允许大小

from sys.ts$ts, sys.tbs_space_usage spc, sys.user$ u

wherespc.tsn  = ts.ts#

  and spc.user# = u.user#

  and ts.name in ('TBS_NG_USER_01','TBS_USER_01')

  and u.name<>'GUOXZ';



通过以上3个查询 可以明确表空间的试用情况和本用户下的允许的表空间的试用情况。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据社

码字不易,谢谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值