oracle查询表空间, 临时表空间大小并调整

                oracle查询表空间, 临时表空间大小并调整
一. 表空间

    1.1 查询表空间名, 和表空间大小:

SELECT a.tablespace_name "表空间名",
    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;

    1.2 查询结果展示
up-7b043fecf8009d5fac48f5e8095733fe9f6.png
    1.3 可以按照自己的需求, 扩大或者缩小表空间: (如果要缩小的话, 需要确保使用率比较低)

--修改oracle数据库的相关表空间, 扩大, 使其提高效率
--ORA-30036
alter database datafile '/home/data/oracle/oradata/oracle/undotbs01.dbf' resize 31744M;
alter database datafile '/home/data/oracle/oradata/oracle/sysaux01.dbf' resize 2760M;
--alter database datafile '/home/data/oracle/oradata/oracle/system01.dbf' resize 2760M;

二. 临时表空间

    2.1  查询临时表空间的使用率

select c.tablespace_name,
to_char(c.bytes/1024/1024/1024,'99,999.999') total_gb,
to_char( (c.bytes-d.bytes_used)/1024/1024/1024,'99,999.999') free_gb,
to_char(d.bytes_used/1024/1024/1024,'99,999.999') use_gb,
to_char(d.bytes_used*100/c.bytes,'99.99') || '%'use
from (select tablespace_name,sum(bytes) bytes
from dba_temp_files GROUP by tablespace_name) c,
(select tablespace_name,sum(bytes_cached) bytes_used
from v$temp_extent_pool GROUP by tablespace_name) d
where c.tablespace_name = d.tablespace_name;

    2.2  修改临时表空间大小:

--加大临时表空间,增加数据处理数量和效率
    ALTER DATABASE TEMPFILE '/home/data/oracle/oradata/oracle/temp01.dbf' RESIZE 20480M;
    ALTER DATABASE TEMPFILE '/home/data/oracle/oradata/oracle/sunway_1_temp.dbf' RESIZE 20480M;

    2.3  查询那些用户在使用

select a.username,a.sql_id,a.SEGTYPE,
  b.BYTES_USED/1024/1024/1024||'G',
  b.BYTES_FREE/1024/1024/1024 from V$TEMPSEG_USAGE a join V$TEMP_SPACE_HEADER b on a.TABLESPACE=b.tablespace_name;

解释username  正在执行sql的用户名
    sql_id    正在执行的sql的的sql_id
    segtype   正在执行的SQL语句做的是什么操作
    BYTES_USED 正在执行sql语句使用的临时表空间的大小
    BYTES_FREE  剩余多少临时表空间

    2.4  查询实例中时候是否有大字段在使用临时表空间:

select * from V$TEMPORARY_LOBS;
  • 0
    点赞
  • 7
    收藏
  • 打赏
    打赏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页
评论

打赏作者

天机玄正

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值